nginx 反代传递域名端口的问题

2019-03-21 23:22:15 +08:00
 toyst

先贴个我的配置:

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 完全不存在一样,这样的话应该怎么样配置呢? 谢谢!

2369 次点击
所在节点    NGINX
3 条回复
joesonw
2019-03-21 23:37:27 +08:00
proxy_set_header X-Real-IP $remote_addr 不就是吗 ??????
ysc3839
2019-03-22 00:28:42 +08:00
完全不做修改是不可能实现的。修改的话通过 X-Real-IP 头来获取 IP 地址就好了。
azh7138m
2019-03-22 00:38:50 +08:00
一般是自己加一个 header。
对后端完全透明不是不行,需要满足,反代机器是服务器的网关,常见一点的就是 tproxy,也就是个 4 层上的问题,不能在 7 层上面做。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/547220

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX