目录

智能一代云平台二十一生产环境Nginx报-502-Bad-Gateway-问题复现及解决方案

智能一代云平台(二十一):生产环境Nginx报 502 Bad Gateway 问题复现及解决方案

强烈推荐一个大神的人工智能的教程:

【前言】

系统最近出现了一个问题,经过相应的排查解决了;在此记录一下解决的整个过程,如果大家遇到类似问题以供参考,另外由于经验有限,如果小编有没有考虑到地方,欢迎在评论中留言。

【问题—复现—原因—解决】

一、问题

我们项目线上环境是部署在阿里云上,相关的部署情况是之前博文《 》中的效果图,大家有兴趣可以参考一下;

上线后发现一个蹊跷的问题,线上偶尔会报502 Bad Gateway(如下图);频率大概每天会出现三到五次,每次持续五分钟左右。

https://i-blog.csdnimg.cn/blog_migrate/e73cbb912a27e428916a12020c05bc89.png

二、复现

1、排查过程中只能等出现这个问题并没有将问题复现出来,为了复现问题,自己写了相关流程,让相关人员辅助确定问题;结果是并没有复现问题。

(1)前提:当访问环境出现502时进行如下测试步骤

(2)访问部署在nginx另外测试环境,可能出现三种情况:

①同样显示 502页面

②显示系统备案(在Nginx中做出现502错误导向图)

https://i-blog.csdnimg.cn/blog_migrate/712f2bc6be6447fc558759a16919bd88.png

③显示正常页面(自己做的测试页面)

https://i-blog.csdnimg.cn/blog_migrate/45a077334ac1bbf7dbd81afe17a9de43.png

(3)在浏览器中输入环境所对应的IP地址访问,查看出现情况:

①出现502错误界面

②能正常访问到系统登录界面

(4)在浏览器中直接访问公司机房映射到外网的IP进行访问,查看出现情况:

①出现502错误界面

②正常访问到系统登录界面

(5)出现其他情况

2、询问阿里云客服,没有确定问题

我们线上环境是使用的阿里云的服务器,于是和阿里云方面进行沟通,进行了相关排除,排除方面是参考阿里云的社区文章— 并没有确定问题;

3、复现问题:

在我们录制系统视频的时候,终于将这个问题再次复现出来—当点击某个功能时系统出现502,经过尝试已经确定这个事件可以使场景复现。

三、原因

复现问题后,迅速进行了问题出现的原因,查看阿里云Nginx的错误日志,根据时间找到了问题的根源,中文乱码,如下图:

https://i-blog.csdnimg.cn/blog_migrate/5d6eb2ae6dac877cfefdb85d2f039174.png

四、解决

1、解决:

确定中文问题后,核实相关代码及服务器的配置,发现导致中文转码失败的是web容器的配置文件中忘记加转码注释导致的。web容器配置文件加转码注释截图如下:

https://i-blog.csdnimg.cn/blog_migrate/72f00e29f52255ae870813d3be525a12.png

2、测试:

重新再次点触发502的功能,发现这次正常了。

3、关于转码问题:

(1)正确配置情况:

①代码中进行转码配置,web容器中没有进行转码配置;代码中转码配置如下:

https://i-blog.csdnimg.cn/blog_migrate/22d7ac3c1af9d5b5530bc1abc9731fe0.png

②web容器中进行转码配置,代码中没有进行转码位置;

(2)错误配置情况:

①代码中和web容器中都没有进行转码配置;

②代码中和web容器中都进行转码配置。

【总结】

1、出现问题后要从错误日志文件着手快速定位问题;

2、现在已经确定导致502出现一个原因,并不能保证没有其他的原因,以后可能还会出现502到时候再排查。