您的位置:首页 > 新闻 > 推广

Flask+Nginx反向代理时logging打印真实IP和代理IP
推广 2023-10-28编辑:深圳网站建设阅读(标签: WordPress 代理 真实

前言

这是最近碰到的一个问题,场景是服务器上运行了Flask和Nginx,使用了Nginx反向代理到Flask,但是此时Flask的日志中记载的IP全部都是127.0.0.1,不方便进行分析,所以要自己定义打印的IP情况。

我需要在日志中显示真是的访问IP和用户的代理IP,也就是X-Real-Ip和X-Forwarded-For两个请求头。

因为flask的日志是从werkzeug_internal.py模块打印出来的,所以要重写这里面的一个函数。

0x2 重写日志的IP地址获取方法

代码如下:

1 2 3 4 5 6 7 def fix_werkzeug_logging():     from werkzeug.serving import WSGIRequestHandler     def address_string(self):         # 这就是在nginx的config中,为什么一定要有X-Real-IP啦         return "[%s]-[%s]" % (self.headers.get('X-Forwarded-For', self.client_address[0]), self.headers.get('X-Real-Ip', self.client_address[0]))     WSGIRequestHandler.address_string = address_string

上的代码是重写代码,之后再配置日志格式即可:

1 2 3 4 5 6 7 8 def init():     fix_werkzeug_logging()  #在此处调用     logging.basicConfig(level=logging.INFO,                         format='[Process %(process)d] [Thread %(thread)d] %(asctime)s %(filename)s '                                '%(funcName)s[line:%(lineno)d] %(levelname)s %(pathname)s '                                '[message: %(message)s] ',                         datefmt='%Y-%m-%d %H:%M:%S',                         filemode='a')

配置Nginx反向代理

Nginx在反向代理的时候需要将X-Forwarded-For和X-Real-Ip两个头进行传递,配置如下:

1 2 3 4 5 6 proxy_pass http://127.0.0.1:8082/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $http_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr;

效果

1 [message: [192.168.0.1]-[192.168.2.2] - - [15/Feb/2020 15:53:21] "GET / HTTP/1.1" 404 -]
服务范围:整站优化、站内优化、外贸网站优化、K站恢复
服务优势:10年优化SEO经验,上词稳定,达标率高、费用低
其它服务:网站建设、企业邮箱、数字证书ssl、400电话、
联系方式:电话:13714666846 微信同号

WordPress,代理,真实,WordPress,代理,真实相关推荐预约建网站

联系我们 MORE+
网站建设公司联系方式
  • 电话:13714666846
  • 坐机:0755-29765948
  • 邮箱:Gong588@ew35.com
  • 地址:深圳市罗湖区凉果街5栋2033号
  • 深圳市网商在线科技有限公司
深圳网站建设公司
24小时服务热线 0755-29765948
  • 地址:深圳市罗湖区人民北路2033号206
  • 电话:0755-29765948 传真:82256610
  • 手机:13714666846 18948334877
  • 邮箱:gong@ew35.com 164761418@qq.com
  • 粤ICP备14049207号
创意化数字品牌整合网络营销
营销网站让你坐等商机坐佣客户,Rss

版权所有:深圳市网商在线科技有限公司

友情链接: