当前位置: 首页 > article >正文

nginx+flask+Gunicorn反代理服务拿不到真实IP的解决

背景

        本人在宝塔linux环境,要部署flask的简单后端并且用Ngnix反代理,用Gunicorn框架部署。(o(╥﹏╥)o中间磕磕绊绊总算部署上去了,需要了解Gunicorn怎么部署的朋友,评论区留言,我加补一篇介绍)。但是但是,我发现 其 accesslog日志里竟然是 127.0.0.1。这怎么能行,我还需要做ip解析的运营数据分析呢。必须解决!!!!

NG日志如下

解决

1.检查nginx 模块配置

        proxy_set_header X-Real-IP $remote_addr;  这个参数很重要!!!!

server {
    listen 80;
    root /opt/middleware;
    index index.html index.htm;
    client_max_body_size 200M;
    server_name _;

    location / {
        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_redirect off;
        real_ip_header X-Real-IP;

      }
    }

配置完这个,根据一些大佬资料,你以为解决了????(不!,没有!🔥)

2.配置gunicorn的conf

所以我百思不得其解,继续找度娘😭。终于让我搞懂了。

我需要的ip在配置文件里。

大概长这样(凑合着看吧)


也就是 access_log_format  传参就是 我们要的日志格式化
然后把原来

"%(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s"

增加一个'"%({X-Real-IP}i)s" (这里可以自由发挥组合,甚至你能搞进去新的参数,由于我的业务只要ip就够了)
ps:  X-Real-IP  是不是很眼熟,就是前面NG配置里面的,可不要写错了呀,和你配的对应
 

'"%({X-Real-IP}i)s" %(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"'

最后重启服务检查一下

完美解决!!!!😝^_^  (?你问我为啥还有127.0.0.1,纯粹就是懒得删参数了,反正现在数据量小的很。!你们可别学我,不用的参数尽量搞掉,给公司降本增效呀 微笑 )


http://www.kler.cn/a/229217.html

相关文章:

  • Python在DevOps中的应用:自动化CI/CD管道的实现
  • 配置AOSP下载环境
  • 深度学习-87-大模型训练之预训练和微调所用的数据样式
  • 从前端视角看设计模式之创建型模式篇
  • docker swarm 部署问题 和 指定节点部署服务
  • ip属地是根据手机号还是位置
  • 数据结构|对称矩阵压缩存储的下标公式推导|如何求对称矩阵压缩存储对应的一维数组下标
  • 年假作业4
  • 记录一些git的常用操作
  • 【20240131】USB相机(查看设备列表、打开设备)
  • vscode连接ssh报错
  • C# Task的使用
  • docker部署自己的网站wordpress
  • [vscode]ssh报错: Resolver error: Error: XHR failedscode错误
  • JVM工作原理与实战(三十六):GraalVM虚拟机
  • 从小白到入门webrtc音视频通话
  • 数据库学习笔记2024/2/5
  • vue element 组件 form深层 :prop 验证失效问题解决
  • 【Flink入门修炼】1-1 为什么要学习 Flink?
  • RAG 新路径!提升开发效率、用户体验拉满
  • Linux内核与驱动面试经典“小”问题集锦(3)
  • Kubernetes实战(二十五)-快速下载k8s.gcr.io,gcr.io,quay.io镜像
  • 高宇辰:打造“π”型人才 | 提升之路系列(七)
  • strtok的使用
  • 政安晨:机器学习快速入门(二){基于Python与Pandas} {建立您的第一个机器学习模型}
  • 看论文利器:paperswithcode