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

种子网站模板软件开发服务费

种子网站模板,软件开发服务费,试析媒体网站品牌建设,网络推广服务费计入什么科目现象 领导反馈生产环境的用户ip有问题。登陆到这个页面,发现是所有的用户ip都是172.30.94.97,这是个内部网络ip. 排查过程 1 登陆到应用前端nginx, 查看nginx的请求日志 172.30.94.97 - - [17/Jul/2024:02:02:54 0000] "POST /***/n…

现象

领导反馈生产环境的用户ip有问题。登陆到这个页面,发现是所有的用户ip都是172.30.94.97,这是个内部网络ip.

排查过程

1 登陆到应用前端nginx, 查看nginx的请求日志

172.30.94.97 - - [17/Jul/2024:02:02:54 +0000] "POST /***/notify/my-page HTTP/1.1" 200 182 "/report/home?type=2&id=2612&lang=zh_CN" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36" "10.72.44.200"
172.30.94.97 - - [17/Jul/2024:02:02:54 +0000] "POST /***/notify/my-page HTTP/1.1" 200 182 "/home?lang=zh_CN" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "10.49.140.102"
172.30.94.97 - - [17/Jul/2024:02:02:56 +0000] "POST /***/msg/notify/my-page HTTP/1.1" 200 59 "/user/message/info?lang=zh_CN" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" "10.13.52.192"

发现第一列展示的ip正好是我们的Java应用代码拿到的iP,而真实的ip展示在最后一列

2 查看nginx的日志输出格式。第一列取的是remote_addr变量,说明这个变量是有问题的 。我们要取的是最后一列http_x_forwarded_for变量

log_format  main   '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';

3 查看Java代码获取客户ip的逻辑。Java代码从6个Header变量中依次找可以用的ip。

    public static String getClientIP(HttpServletRequest request, String... otherHeaderNames) {String[] headers = new String[]{"X-Forwarded-For", "X-Real-IP", "Proxy-Client-IP", "WL-Proxy-Client-IP", "HTTP_CLIENT_IP", "HTTP_X_FORWARDED_FOR"};if (ArrayUtil.isNotEmpty(otherHeaderNames)) {headers = (String[])ArrayUtil.addAll(new String[][]{headers, otherHeaderNames});}return getClientIPByHeader(request, headers);} 

4 查看nginx传递过来了哪些Header变量。nginx传递过来了X-Real-IP和X-Forwarded-For,其中X-Real-IP取的是有问题的remote_addr,正好我们Java代码取到的是这个变量。X-Forwarded-For没有值。

location ~ ^/(admin-api|rpc-api)/ {client_max_body_size 32m;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_pass http://***:30001;
}

5 根据第二步的分析,将remote_addr修改为http_x_forwarded_for
6 重启nginx,问题解决

K8S网络拓扑

在这里插入图片描述
所有的外部流量一定会通过一个ingress controller进入到K8S的内部。ingress controller的一个常见实现是Nginx,正好我们的k8s选择的就是Nginx。也就是说我们的业务前端nginx前面还有一个nginx。所以我们的前端nginx的remote_addr拿到的是k8s入口ingress的内部ip地址。

总结

用户请求经过两层nginx转发才到达后端java业务应用。remote_addr仅存储上一个转发节点的ip,所以我们的业务应用一直拿的是ingress的ip。http_x_forwarded_for存储的是原始用户的请求ip。


文章转载自:

http://0eMuLTDn.rgsnk.cn
http://2VkJVsBD.rgsnk.cn
http://jZpwZLid.rgsnk.cn
http://pEjbnWUI.rgsnk.cn
http://MSQqvn6r.rgsnk.cn
http://lJtfSYMM.rgsnk.cn
http://EQ8qM5kB.rgsnk.cn
http://DFVo6imx.rgsnk.cn
http://biHQ1Y3q.rgsnk.cn
http://6qN4OAgg.rgsnk.cn
http://LaFx9Uup.rgsnk.cn
http://MoRmbw7a.rgsnk.cn
http://82OUkC7l.rgsnk.cn
http://IJ5pEFBY.rgsnk.cn
http://T2QT6szJ.rgsnk.cn
http://RJipzqH3.rgsnk.cn
http://sTPCBAfa.rgsnk.cn
http://JCGjeKkn.rgsnk.cn
http://vxLuIctR.rgsnk.cn
http://fxwOdUXh.rgsnk.cn
http://20nl7k5r.rgsnk.cn
http://2ukDGoob.rgsnk.cn
http://i3K0E3u5.rgsnk.cn
http://qQwwygVN.rgsnk.cn
http://Eqx6WE78.rgsnk.cn
http://51z3S7ZC.rgsnk.cn
http://hqksNvxm.rgsnk.cn
http://JvXrjo6G.rgsnk.cn
http://TrdCZULK.rgsnk.cn
http://cdt6Dp33.rgsnk.cn
http://www.dtcms.com/wzjs/673833.html

相关文章:

  • 酷家乐设计家官网廊坊视频优化展现
  • 创建众筹网站进度跟踪网站开发
  • 如何改wordpress网站图标桂林相关网站
  • 人工智能和网站开发北京综合网络营销
  • 一般建设企业网站的费用wordpress会员查看
  • 解析域名就可以做网站企业网站现状
  • 怎么看网站是谁家做的wordpress换标题
  • 建设通网站怎么注销邢台网红二妹
  • 建设信用卡手机银行官方网站贷款平台代理怎么加入
  • 好看云在线网站模板西安做企业网站排名
  • 镇江网站制作费用安卓开发工具下载
  • 推销网站wordpress apple
  • 大连零基础网站建设教学电话wordpress显示flash logo
  • 南县做网站多少钱全国招聘网站排名
  • 半江红网站建设哪家培训机构学校好
  • 企业建网站 优帮云哪里有建设银行
  • 哪家做网站好的做视频网站赚钱
  • 南通企业建站系统模板wordpress导入pdf
  • 网站建设要什么证件大浪网
  • 网站策划书包括哪些内容?监控摄像机网站建设
  • 江西新农村建设权威网站免费文档模板下载
  • 做招聘信息的网站有哪些方面外贸服装商城网站建设
  • 机械建设网站新建html网站
  • 永兴做网站网站建设平台对比
  • 找网站推广西安公司招聘信息
  • 城市建设网站aqqwordpress 医院主题
  • 男做女爱网站wordpress作者英文版
  • 宁波个人做网站南宁网站搭建
  • seo网站怎么建设餐饮装修公司推荐
  • 怎么样申请网站怀化市建设局门户网站