You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

问题发现

业务代码逻辑大致如下

公司java服务中有一个服务需要取X-Forwarded-For这个值作为IP地址通过哈希算法得到token校验登陆状态

域名直接解析到阿里云ACKpro部署的nginx-ingress-controller弹性IP可以正常取到用户真实IP

但是域名解析到CDN上之后nginx-ingress-controller传递过去的X-Forwarded-For这个值变成了CDN服务所在阿里云自身的公网IP,而这个IP在阿里云内部又是会负载均衡的不断变化,所以导致内部java服务获取到的IP地址和token校验失效,这样一来导致授权手机号码一键登录APP报出token失效的错误


解决方案:

参考:https://blog.csdn.net/baidu_38432732/article/details/131214545

编辑nginx-ingress-controller的configmap

kubectl -n kube-system edit cm nginx-configuration

在配置中添加以下内容

compute-full-forwarded-for: "true"
forwarded-for-header: "X-Forwarded-For"
use-forwarded-headers: "true"

修改后如下

  • No labels