Nginx 在基于flask的应用程序中获取客户端IP

Nginx 在基于flask的应用程序中获取客户端IP,nginx,flask,clientip,Nginx,Flask,Clientip,我在服务器中部署了Flask应用程序。我们正在使用Nginx。nginx的设置如下: proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_read_timeout 25s; proxy_pass http://127.0.0.1:8000; add_header X-Cache $upstream_cache_s

我在服务器中部署了Flask应用程序。我们正在使用Nginx。nginx的设置如下:

proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_read_timeout 25s;
proxy_pass http://127.0.0.1:8000;
add_header X-Cache $upstream_cache_status;
在烧瓶设置中,我已完成以下操作:

app = Flask(__name__, static_folder=None)
app.wsgi_app = ProxyFix(app.wsgi_app)
现在,每当用户访问一个站点,我都想要一个真正的ip。目前我正在

127.0.0.1

我试过如下方法:

if request.headers.getlist("X-Forwarded-For"):
    ip = request.environ['HTTP_X_FORWARDED_FOR']
else:
    ip = request.remote_addr

有人能在这里给我指路吗。

使用
请求。访问路线

Nginx配置示例:

location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Protocol https;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_redirect off;
        proxy_pass http://127.0.0.1:9000;
}

@Pradeepb你能检查一下你是否有正确的Nginx设置吗?正如你从我的设置中看到的:我没有这两个条目。我应该把这两个放进去吗<代码>代理集头X转发协议https;代理集头X-Real-IP$remote\u addr带到
location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Protocol https;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_redirect off;
        proxy_pass http://127.0.0.1:9000;
}