出于某些需求在网关级架设 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_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; } } } |