直接使用flask run运行服务时,请求上下文的remote_addr往往不是真实的IP,这里使用ProxyFix来获取代理的真实IP地址
from werkzeug.middleware.proxy_fix import ProxyFix app = Flask(__name__) app.wsgi_app = ProxyFix(app.wsgi_app)uwsgi服务器
uwsgi默认情况下同样不能获取到真实的IP地址,使用--log-x-forwarded-for 参数即可,下面是参数说明:
# uwsgi --help|grep X-Forwarded --log-x-forwarded-for use the ip from X-Forwarded-For header instead of REMOTE_ADDR
在配置文件中使用:
[uwsgi] # http 协议对客户端开发的端口号,客户端通过此端口访问 flask web 服务接口 http = 0.0.0.0:5000 # 使用真实IP log-x-forwarded-for = true # 应用目录,即python代码所在目录 pythonpath = /work/src ...



