又记录一次网关问题的排查过程 - 外网进内网 No ‘Access-Control-Allow-Origin‘ header is present on the requested recourse

目录

1. 背景

2. 排查问题

网络经过的网关

NAT

CLB

防火墙

后台服务

定位问题

总结


1. 背景

首先这个问题不是我遇到的,是同组的前辈遇到的,然后我也从中学习到了很多,写下来分享记录一下。问题是我们的H5会通过接口请求存放在腾讯云OSS桶的资源,然后以前都没事,有一天运维让前后端切换了接口的域名,可能是因为安全整改什么的,所以换了个域名。然后一切换之后,就报了'xxxx/url/url' from origin 'https://url.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested recourse

2. 排查问题

首先也是找运维,查看腾讯云这个桶是否配置了跨域,答案是配置了的。

然后由于是安全组整改,更换了域名,所以就找了安全组的同事。

然后就开始了整个链路的问题排查过程,这也是我在这次问题排查中学到的最主要的东西,即外网进内网的,从而也引发了另外一些知识的思考,以后有会写一篇文章来补充下知识点。

网络经过的网关

NAT

首先是用户的网络发起请求,然后会经过公司部署的NAT网关,NAT网关的作用呢就不细说,大概就是用来转换IP地址,这样外网的网络才能访问到内网中的服务器,才能找到内网中服务器的真实的ip,这个NAT网关一般就是安全组的同事在负责。

CLB

CLB就是负载均衡,就是用来转发流量的,将流量转发到后端的服务器,以减少服务器的访问压力,同时CLB还具备抗DDoS攻击的能力,增强了应用服务的防护能力,这部分呢也是由安全和运维组的同事来做。

防火墙

经过CLB后,CLB就会把请求转发到内网,有的网络架构为了更安全,在这中间可能还会加一层防火墙,所以还需要运维和安全的同事去进行开墙。

后台服务

紧接着网络通过防火墙后就来到了内网,有的公司可能还会在到达后端服务前再加一层网关,具体作用看公司的整个网络架构是怎样的。反正最后就到达了后端服务。

所以整个流程如图:

注:并不是所有的外网进内网都是这样的步骤,主要还是看公司的安全和运维怎么做,万一要多两个网关也不一定呢。

定位问题

然后在和后台查日志的过程中,发现从进入内网一直到后台服务都是没问题的,所以一定是NAT到CLB或者CLB到内网这一步哪里出错了。接着我们发现返回回来的响应头没有Access-Control-Allow-Origin,所以就向同事反应,得到回答是CLB这层把这个响应头弄丢了,没有返回这个响应头。之后CLB加上这个响应头就解决跨域了

总结

记录这次解决问题主要是了解了在实际生产中如果遇到问题应该怎么解决,像这种并不是出现在前后端,而是出现在中间件的错误就很难排查,这也是自己第一次接触到出现在中间层网关的错误。以前大学面试的时候还被问到过如果生产出现问题应该如何排查,但当时自己刚实习两个月,没有太多项目经验,所以就没答上来,现在经过这次问题排查过后,就知道大概如何回答了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值