V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
millionart
V2EX  ›  宽带症候群

frp 怎么向 nginx 传递真实 IP?

  •  1
     
  •   millionart · 2019-12-06 23:32:52 +08:00 · 3712 次点击
    这是一个创建于 1601 天前的主题,其中的信息可能已经有所发展或是发生改变。

    官方说明只写了:

    只需要在代理配置中增加一行 proxy_protocol_version = v2 即可开启此功能。
    
    本地的 https 服务可以通过在 nginx 的配置中启用 Proxy Protocol 的解析并将结果设置在 X-Real-IP 这个 Header 中.就可以在自己的 Web 服务中通过 X-Real-IP 获取到用户的真实 IP。
    

    试着在 nginx 里开启 proxy_protocol 后貌似运行没什么问题,但无论怎么配置都把外网 ip 识别成 127.0.0.1,可以识别内网 ip 但没啥用。

    有谁配置成功过吗?

    至于为啥不发 issue——看到那一大坨 issue 格式要求就头大。

    3 条回复    2020-01-11 13:36:35 +08:00
    qwqVictor
        1
    qwqVictor  
       2019-12-07 15:31:16 +08:00 via iPhone
    listen 的时候加上 proxy_protocol,然后配置 real IP header 为 proxy_protocol。
    例如:
    listen [::]:8443 ssl http2 proxy_protocol;
    real_ip_header proxy_protocol;
    real_ip_recursive on;
    set_real_ip_from 127.0.0.1;
    millionart
        2
    millionart  
    OP
       2019-12-07 22:44:06 +08:00
    @qwqVictor 并没有效果,仍然只识别成 127.0.0.1
    qwqVictor
        3
    qwqVictor  
       2020-01-11 13:36:35 +08:00 via iPhone
    试试不用 frp 自带的 proxy_protocol 实现,只用 frp 进行裸的 TCP 代理,用 HAProxy 转发。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1013 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:02 · PVG 06:02 · LAX 15:02 · JFK 18:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.