使用 nginx 代理获取真实 IP

使用 nginx 代理获取真实 IP

我在网站上设置了一个子域,该子域使用 nginx 托管 Flask 应用程序,服务器配置如下。它托管在 DigitalOcean 上的一个 droplet 上。

server {
    listen 80;
    server_name subdomain.mysite.com;

    location / {
        proxy_pass http://0.0.0.0:8080;
        proxy_redirect http://0.0.0.0:8080 http://subdomain.mysite.com;

    }
}

我正在尝试在我的应用程序中获取访问者的 IP,但无论访问者是谁,IP 地址似乎都相同。我不是这方面的专家,所以如果有人能解释发生了什么,以及我如何获取访问者的真实 IP 地址,那就太好了。

答案1

假设你的网络其他地方的 IP 没有被更改/转换,将以下内容添加到你的 nginx 配置中(与其他代理选项一起)应该可以工作

proxy_set_header        X-Real-IP         $remote_addr;
proxy_set_header        X-Forwarded-For   $proxy_add_x_forwarded_for;

相关内容