V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ioioioioioioi
V2EX  ›  问与答

Nginx 反代如何传递 IP?

  •  
  •   ioioioioioioi · 2017-01-18 17:05:12 +08:00 · 1765 次点击
    这是一个创建于 2870 天前的主题,其中的信息可能已经有所发展或是发生改变。
    入口服务器 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
    8 条回复    2017-01-19 08:10:33 +08:00
    shyling
        1
    shyling  
       2017-01-18 17:08:07 +08:00   ❤️ 1
    用 X-Forwarded-For: client1, proxy1, proxy2, proxy3
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    lhbc
        2
    lhbc  
       2017-01-18 17:12:13 +08:00
    服务器 B:
    http {
    set_real_ip_from <服务器 A 的 IP>;
    real_ip_header X-Real-IP;
    }
    clino
        3
    clino  
       2017-01-18 18:22:25 +08:00 via Android
    X-Forwarded-For 应该是标准
    https://github.com/zhangchunlin/shapps/tree/master/shapps/auth/xforwardedfor 这个是我写的 uliweb 中间件,取 X-Forwarded-For 更新到客户端 ip 变量
    ioioioioioioi
        4
    ioioioioioioi  
    OP
       2017-01-18 21:52:12 +08:00
    @lhbc 谢谢,但是试了,不行。
    lhbc
        5
    lhbc  
       2017-01-18 22:12:05 +08:00
    @ioioioioioioi 服务器 A 还要配置
    proxy_set_header X-Real-IP $remote_addr;
    ioioioioioioi
        6
    ioioioioioioi  
    OP
       2017-01-18 22:26:30 +08:00
    @lhbc 不行,设置后,第三个服务器的 HTTP_X_REAL_IP 还是第一个服务器的 IP
    lhbc
        7
    lhbc  
       2017-01-19 00:16:41 +08:00 via iPhone
    @ioioioioioioi 服务器 B 要关掉这个
    proxy_set_header X-Real-IP $remote_addr;
    ioioioioioioi
        8
    ioioioioioioi  
    OP
       2017-01-19 08:10:33 +08:00
    @lhbc 不行,哎,放弃了,用 HTTP_X_FORWARDED_FOR 了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5362 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 08:19 · PVG 16:19 · LAX 00:19 · JFK 03:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.