江苏优化网站关键词,外贸一年赚个100万难吗,做爰全过程网站免费的视频,做网站属于广告费吗springboot过ingress后无法获取X-Forwarded-For头信息 一、现象结论修改步骤ingressspringboot 排查流程本文参考 一、现象
项目使用spring boot 2.7.18#xff0c;有个新需求是校验X-Forwarded-For头的所有来源ip合法性#xff0c;线上环境出现取不到X-Forwarded-For头的问… springboot过ingress后无法获取X-Forwarded-For头信息 一、现象结论修改步骤ingressspringboot 排查流程本文参考 一、现象
项目使用spring boot 2.7.18有个新需求是校验X-Forwarded-For头的所有来源ip合法性线上环境出现取不到X-Forwarded-For头的问题本地和测试环境都正常。本地是直接调用测试环境是nginx转发线上是k8s并且过了ingress。
结论
ingress默认会忽略X-Forwarded-For需要手动开启use-forwarded-headers: “true”。springboot中CloudPlatform对Kubernetes platform的类型进行了识别如果使用的是内嵌的tomcat在k8s环境中会自动添加了tomcat的RemoteIpValve线上环境的httpHeader(x-forwarded-for)只有一个没有代理ip信息按RemoteIpValve的逻辑x-forwarded-for头信息会被删除。 需要二者配合修改。
修改步骤
ingress
kubectl edit configmaps nginx-configuration -n ingress-nginx修改文件内容添加参数
apiVersion: v1
data:compute-full-forwarded-for: trueforwarded-for-header: X-Forwarded-Foruse-forwarded-headers: true
....springboot
添加springboot全局配置
server:forward-headers-strategy: none排查流程
postman调线上接口线上取不到X-Forwarded-For头。但是在postman添加请求头X-Forwarded-For后后端服务就能正确取到。网上查资料说需要修改ingress配置。参考修改ingress配置后线上k8s容器抓包流量显示有X-Forwarded-For头信息且存在多个ip情况用逗号隔开。用python写一个程序用来取X-Forwarded-For头打成Docker镜像上传部署到k8sPython能正常取到X-Forwarded-For信息。问题已经定位到定位到springboot。问题分析参考
本文参考
https://blog.csdn.net/weixin_46887489/article/details/134616471https://blog.csdn.net/m0_71777195/article/details/127978440