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; 这个参数很重要!!!!

Go 复制代码
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配置里面的,可不要写错了呀,和你配的对应

Go 复制代码
'"%({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,纯粹就是懒得删参数了,反正现在数据量小的很。!你们可别学我,不用的参数尽量搞掉,给公司降本增效呀 微笑 )

相关推荐
人生匆匆33 分钟前
通过nginx解决跨域问题
运维·nginx
子木HAPPY阳VIP3 小时前
信创UOS,Docker 完整操作部署(Dockerfile部署方式)&排错整合
linux·运维·redis·nginx·docker·容器·tomcat
Leinwin4 小时前
Claude 四月宕机七次:从一次事故看企业级 AI 部署的容灾设计
后端·python·flask
技术钱5 小时前
Flask-SQLAIchemy和Flask-Migrate扩展的配置与使用
数据库·python·flask
Ares-Wang5 小时前
Flask》》Flask-Caching缓存插件
python·缓存·flask
吹个口哨写代码6 小时前
小程序图片不显示,直接访问显示,头部配置问题
javascript·css·nginx
m0_631653316 小时前
阿里云单机双网终极部署与运维白皮书:Nginx + PM2 + Prisma 踩坑实战
运维·nginx·阿里云·部署
偶尔上线经常挺尸17 小时前
《100个“反常识”经验15:Nginx 502排查:从应用到内核》
运维·nginx·性能调优·反向代理·502错误·http排错
yoyo_zzm17 小时前
Laravel9.x新特性全解析
数据库·mysql·nginx
yoyo_zzm20 小时前
Laravel8.x新特性全解析
数据库·nginx