某网络环境下访问业务异常问题排查
问题现象
在办公网络环境下访问业务:http://xxx服务,无法正常跳转至登陆页面,如下:
但是在另外一台机房服务器访问业务:http://xxx 是正常的,会自动跳转到登陆页面,如下:
排查步骤
1、查找是否有报错接口
远程运维同事电脑,在办公网络环境下再次测试访问,复现问题。
首先还是使用浏览器开发者工具,查看是否有资源加载异常报错
可以看到部分资源请求异常,加载异常的资源地址格式为:http://xx/xxx
在办公网络环境下ping这个域名,查看解析的ip:
可以看到内网办公网络环境下ping解析到的地址。
而该IP地址即为后端提供服务的服务器的地址。而该服务器上运行的服务区为8081端口,不存在80端口监听。
为什么在机房服务器访问就是正常的呢?
登陆机房服务器,ping域名:xxxx,可以看到解析出来的为一个公网IP。即机房网络和办公网络访问目标业务的时候,走的流量链路是不一样的。
解决方法
如果想让办公网络环境走内网链路访问正常,并且不变更后端代码。
可以通过找台内网机器然后配置代理的方式解决。
1)配置代理,前端代理端口为80,后端源站信息为:xxxx 端口。
2)然后将域名 解析到代理服务器的IP。
3)代理中需要配置允许跨域访问,来源建议直接写*即可。
haproxy代理配置可参考如下内容:
frontend application_fztzuat
bind *:80
bind *:443 ssl crt /etc/pki/tls/certs/xx.pem
http-request set-header Access-Control-Allow-Origin *
mode http
acl domain_fztzuat hdr_beg(host) -i [xxx](http://xxxx)
use_backend fztzuat if domain_fztzuat
backend fztzuat #后端服务器集群配置
mode http
balance roundrobin #后端负载均衡策略
server web01 xxx:xx