Nginx实现TCP转发
学思创
272
stream {
# 添加socket转发的代理
upstream socket443proxy{
hash $remote_addr consistent;
# 转发的目的地址和端口
server 192.168.3.10:443 weight=5 max_fails=3 fail_timeout=30s;
}
# 提供转发的服务,即访问localhost:443,会跳转至代理socket443指定的转发地址
server {
listen 443;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass socket443proxy;
proxy_protocol on;
}
}
从服务配置(接收端):
listen 443 proxy_protocol ssl http2;
set_real_ip_from 192.168.3.2;
real_ip_header proxy_protocol;
set_real_ip_from 192.168.3.2;
real_ip_header proxy_protocol;
Nginx启用proxy_protocol后,可通过real_ip模块从proxy_protocol头中获取用户真实IP并替换remote_addr