Flask通过nginx反向代理时获取客户端真实IP

问题解决

正常情况下,通过如下方式即可获取:

1
ip = request.remote_addr

如果使用了nginx进行代理的话,需要首先在nginx的配置文件中进行相应的修改:

1
2
3
4
5
6
server {
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

之后在Flask代码中通过如下方式获取:

1
2
3
from flask import request

real_ip = request.headers['X-Forwarded-For']

参考文章

  1. Flask使用nginx反向代理后获取客户端真实IP地址_Dexter's Laboratory-CSDN博客

Flask通过nginx反向代理时获取客户端真实IP
http://example.com/2022/02/12/Flask通过nginx反向代理时获取客户端真实IP/
作者
EverNorif
发布于
2022年2月12日
许可协议