记一次nginx配置踩的坑

221 阅读2分钟

背景

最近项目要发布生产环境,在此之前需要测试环境、预生产环境、以及演示环境,处于现实资源考虑,测试环境、准生产环境都使用公司内网环境,演示环境使用公网环境,但是在部署的过程中,测试环境、准生产环境都没有问题,到了演示环境中,前端页面只要一刷新,就会出现404的页面,同样的nginx配置,神奇的踩坑了。

问题排查

1、检查nginx的配置

查看conf文件内容,没有发现配置出错的地方,解决页面刷新404的方法也确认加上了。

image.png

2、内外网映射检查

检查了内外网的映射配置,配置正确,而且页面只要不刷新,是可以正常操作的

3、猜测问题原因

网页刷新,就是重新请求了相关地址,但是地址第一次请求的时候是没有问题的,重新请求的时候就是404,那说明nginx配置的地址重定向可能出问题了

解决方法

1、指明原先的代理路由IP

image.png 原先proxy_pass中的路径配的是http://localhost:端口的方式,现在换成http://ip:端口的方式 注意了:配置完了后要重启,docker restart nginx

刷新页面后,可以了,这里怀疑是localhost没有与ip地址对应上,因为有了一层虚拟机ip包装,可能出现重新刷新页面的时候localhost找不到对应的IP了

2、修改hosts文件

将ip 与localhost对应上

至此,这个坑填上了

总结

由于人手不够,我兼职做了运维的工作,智能运维的道路还要走很长一段时间。这次部署时间很紧,在紧张的环境下解决问题的应急能力就彰显出来了,好在自己还能猜到一点问题原因所在,靠着直觉去解决问题,深层次的原理还是需要理解透的,加油!