未加星标

Python Flask使用Nginx做代理时如何获取真实IP

字体大小 | |
[开发(python) 所属分类 开发(python) | 发布者 店小二04 | 时间 2017 | 作者 红领巾 ] 0人收藏点击收藏

使用 Flask 开发的项目,但部署到线上 Docker 容器中后,因为使用了 Nginx 做代理,所以 Flask 无法获取真实 IP 地址,获取到的都是 192.0.0.1 ,解决方法如下:

首先是 Nginx 的配置,需要在 转发的请求headers中设置好真实IP :

location /path { root html; proxy_pass http://127.0.0.1:5000/; proxy_set_header X-Real-IP $remote_addr; }

然后在 Flask 中 通过headers获取IP ,为了兼容使用 nginx 不使用 nginx 的情况,做了一些处理:

ip = request.remote_addr try: _ip = request.headers["X-Real-IP"] if _ip is not None: ip = _ip except Exception as e: print(e)

通过上述代码,就可以获取到真实 IP 了。

转载请注明出处 : http://www.zgljl2012.com/2017/01/08/python-flaskshi-yong-nginxzuo-dai-li-shi-ru-he-huo-qu-zhen-shi-ip/

本文开发(python)相关术语:python基础教程 python多线程 web开发工程师 软件开发工程师 软件开发流程

主题: NginxDockerPython
分页:12
转载请注明
本文标题:Python Flask使用Nginx做代理时如何获取真实IP
本站链接:http://www.codesec.net/view/521642.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 开发(python) | 评论(0) | 阅读(160)