
先贴个我的配置:
server { listen 8 ssl http2; server_name domain.com; ssl_certificate /etc/default/fullchain.cer; ssl_certificate_key /etc/default/domain.com.key; error_page 497 https://$host:8$request_uri; location / { proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Scheme $scheme; proxy_pass https://192.168.2.5:5001; } } IP 和端口的情况: 客户端( 192.168.2.2 )→Nginx ( domain.com:8 )→服务器后端( https://192.168.2.5:5001 )
我想实现这样的配置,通俗来说就是当「客户端」输入:「 https://domain.com:8 」访问的时候,服务器后端接受到的信息是:「客户端」的 IP 是「 192.168.2.2 」是通过访问「 https://192.168.2.5:5001 」来访问服务器后端的,也就是说当 Nginx 完全不存在一样,这样的话应该怎么样配置呢? 谢谢!
1 joesonw 2019 年 3 月 21 日 proxy_set_header X-Real-IP $remote_addr 不就是吗 ?????? |
2 ysc3839 2019 年 3 月 22 日 完全不做修改是不可能实现的。修改的话通过 X-Real-IP 头来获取 IP 地址就好了。 |
3 azh7138m 2019 年 3 月 22 日 一般是自己加一个 header。 对后端完全透明不是不行,需要满足,反代机器是服务器的网关,常见一点的就是 tproxy,也就是个 4 层上的问题,不能在 7 层上面做。 |