flask 获取被 nginx 反向代理的客户端真实 ip
服务端为了防爬虫或其他用途,需要获取客户端真实 ip,在 flask 中获取客户端 ip 的方法如下:
1 | ip = request.remote_addr #写在 view 中 |
但是通过 nginx 反向代理后,获取的 ip 全部变成了 127.0.0.1。
可以在 nginx 中的配置文件中 location 下块添加一行:
1 | # 设置请求头,并将头信息传递给服务器端 |
然后在 flask 中通过以下代码就能获取真实 ip 了:
1 | ip = request.headers['X-Real-IP'] |
很多类似的教程坑在,只给出一个类似 ip = request.headers['X-Forwarded-For']
根本不告诉你 headers 的这个 key 是在 nginx 中配置的。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 BuyiXiao's Blog!
评论
ValineDisqus