fengxu 2019-04-10
出于某些需求在网关级架设 HTTP 透明代理,劫持用户 HTTP 请求,转发或直接进行响应。
iptables配置
iptables 用于将经过网关的 TCP 80 端口的上行流量转发至网关上的 Nginx 服务。
代码如下:
sudo iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT \ --to-destination 网关IP:端口
代码如下:
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 8000; server_name localhost; 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; index index.html index.htm; } } }