Nginx 反代如何传递 IP?

2017-01-18 17:05:12 +08:00
 ioioioioioioi
入口服务器 A 配置:
proxy_set_header X-Real-IP $remote_addr;

下一个服务器 B 配置:
proxy_set_header X-Real-IP $http_x_real_ip;


但是服务器 B 的 X-Real-IP 并非用户 IP ,而是服务器 A 的 IP
1712 次点击
所在节点    问与答
8 条回复
shyling
2017-01-18 17:08:07 +08:00
用 X-Forwarded-For: client1, proxy1, proxy2, proxy3
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
lhbc
2017-01-18 17:12:13 +08:00
服务器 B:
http {
set_real_ip_from <服务器 A 的 IP>;
real_ip_header X-Real-IP;
}
clino
2017-01-18 18:22:25 +08:00
X-Forwarded-For 应该是标准
https://github.com/zhangchunlin/shapps/tree/master/shapps/auth/xforwardedfor 这个是我写的 uliweb 中间件,取 X-Forwarded-For 更新到客户端 ip 变量
ioioioioioioi
2017-01-18 21:52:12 +08:00
@lhbc 谢谢,但是试了,不行。
lhbc
2017-01-18 22:12:05 +08:00
@ioioioioioioi 服务器 A 还要配置
proxy_set_header X-Real-IP $remote_addr;
ioioioioioioi
2017-01-18 22:26:30 +08:00
@lhbc 不行,设置后,第三个服务器的 HTTP_X_REAL_IP 还是第一个服务器的 IP
lhbc
2017-01-19 00:16:41 +08:00
@ioioioioioioi 服务器 B 要关掉这个
proxy_set_header X-Real-IP $remote_addr;
ioioioioioioi
2017-01-19 08:10:33 +08:00
@lhbc 不行,哎,放弃了,用 HTTP_X_FORWARDED_FOR 了。

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

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

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

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

© 2021 V2EX