影者东升 发表于 2021-8-23 10:23:29

在网关中使用Nginx配置HTTP透明代理案例

出于某些需求在网关级架设 HTTP 透明代理,劫持用户 HTTP 请求,转发或直接进行响应。
iptables配置
iptables 用于将经过网关的 TCP 80 端口的上行流量转发至网关上的 Nginx 服务。
复制代码代码如下:


sudo iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT \

--to-destination 网关IP:端口

Nginx 演示配置
复制代码代码如下:


worker_processes1;



events {

    worker_connections1024;

}



http {

    include       mime.types;

    default_typeapplication/octet-stream;



    sendfile      on;

    keepalive_timeout65;



    server {

      listen       8000;

      server_namelocalhost;



      resolver 8.8.8.8;



      location /test {

            proxy_pass http://hev.cc/sftp/files/;

            proxy_buffers 256 4k;

            proxy_max_temp_file_size 0k;

      }



      location / {

            # 包含关键词 '计算机' 重定向至 /test

            rewrite ^.*计算机.*$ /test last;



            # 通用透明代理

            proxy_pass $scheme://$host$request_uri;

            proxy_set_header Host $http_host;

            proxy_buffers 256 4k;

            proxy_max_temp_file_size 0k;

      }

    }



    # 匹配 *.baidu.com 域名

    server {

      listen       8000;

      server_name*.baidu.com;



      location / {

            root   html;

            indexindex.html index.htm;

      }

    }

}
文档来源:http://www.zzvips.com/article/20171.html
页: [1]
查看完整版本: 在网关中使用Nginx配置HTTP透明代理案例