当使用 nginx 作为负载均衡器时如何记录客户端 IP?

当使用 nginx 作为负载均衡器时如何记录客户端 IP?

我使用 nginxupstream在同一端口上运行 Web 服务器和 TURN 服务器:

stream {
    upstream web {
        server 127.0.0.1:4444;
    }
    upstream turn {
        server 127.0.0.1:5349;
    }
    # since 1.13.10
    map $ssl_preread_alpn_protocols $upstream {
        ~\bh2\b         web;
        ~\bhttp/1\.     web;
        default         turn;
    }
}

server {
    listen 4444 ssl http2 http2 http2;
    listen [::]:4444 ssl http2 http2 http2;
    server_name my.domain;
    # (...)
}

但是使用此配置,我只能127.0.0.1在访问日志中看到。我尝试X-Forwarded-For在上游部分进行设置,但那里没有合法指令。

使用真实客户端 IP 记录请求的最佳方法是什么?

答案1

你说你尝试过这个:

proxy_set_header X-Forwarded-For $remote_addr;

如果是,你尝试过这个吗?

proxy_set_header X-Real-IP $remote_addr;

相关内容