一、配置反向代理
1. 检查 Nginx 插件
bash
nginx -V 2>&1 | grep --color=never stream
如果输出里有 --with-stream,那就已经有了,不用安装。
如果没有,就要看你的系统/发行版怎么提供它。
Ubuntu / Debian
先查:
bash
nginx -V 2>&1 | grep stream
如果是 Ubuntu/Debian 官方 Nginx 包,通常可以安装:
bash
sudo apt update
sudo apt install libnginx-mod-stream
然后检查模块:
bash
ls /usr/lib/nginx/modules/ | grep stream
一般会看到类似:
ngx_stream_module.so
有些 Debian/Ubuntu 配置还需要在 /etc/nginx/nginx.conf 顶部加载:
nginx
load_module /usr/lib/nginx/modules/ngx_stream_module.so;
然后验证配置并重载 Nginx:
bash
sudo nginx -t
sudo systemctl reload nginx
2. 配置 Nginx
nginx
stream {
server {
listen 3308;
proxy_connect_timeout 5s;
proxy_timeout 1h;
proxy_pass 10.0.0.20:3306;
}
}
二、透传真实 IP
nginx
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}