场景:我有两个node项目,分别部署在两个pod上面,两个node代码一摸一样。但是一个node发起的请求是成功的,另一个node是失败的。这个接口请求包含了ak/sk的authorization身份验证。
报错信息:和以下一致
根据以上信息可以判断出,是因为ip不满足请求,应该是失败的那个k8s容器有问题。
实际场景解决办法:
在失败的k8s代码的请求header中添加字段:x-forward-for: '92.6.7.120'
在k8s集群中(master节点)安装ingress和ingress controller
这个的原理是,其实我们接口的直接host地址是代理ip地址,然后x-forward-for是真实的ip地址,相当于我们请求代理,然后代理再做一次转发。