背景
最近项目要发布生产环境,在此之前需要测试环境、预生产环境、以及演示环境,处于现实资源考虑,测试环境、准生产环境都使用公司内网环境,演示环境使用公网环境,但是在部署的过程中,测试环境、准生产环境都没有问题,到了演示环境中,前端页面只要一刷新,就会出现404的页面,同样的nginx配置,神奇的踩坑了。
问题排查
1、检查nginx的配置
查看conf文件内容,没有发现配置出错的地方,解决页面刷新404的方法也确认加上了。
2、内外网映射检查
检查了内外网的映射配置,配置正确,而且页面只要不刷新,是可以正常操作的
3、猜测问题原因
网页刷新,就是重新请求了相关地址,但是地址第一次请求的时候是没有问题的,重新请求的时候就是404,那说明nginx配置的地址重定向可能出问题了
解决方法
1、指明原先的代理路由IP
原先proxy_pass中的路径配的是http://localhost:端口的方式,现在换成http://ip:端口的方式
注意了:配置完了后要重启,docker restart nginx
刷新页面后,可以了,这里怀疑是localhost没有与ip地址对应上,因为有了一层虚拟机ip包装,可能出现重新刷新页面的时候localhost找不到对应的IP了
2、修改hosts文件
将ip 与localhost对应上
至此,这个坑填上了
总结
由于人手不够,我兼职做了运维的工作,智能运维的道路还要走很长一段时间。这次部署时间很紧,在紧张的环境下解决问题的应急能力就彰显出来了,好在自己还能猜到一点问题原因所在,靠着直觉去解决问题,深层次的原理还是需要理解透的,加油!