生产环境大面积404这锅我不背!

 提示:点击图片可以放大
来源:优游ub8平台    发布时间:2024-08-08 20:35:54

  发布到线上的接口服务一直好端端的,今天突然运营反馈说很多功能无法正常使用。经过排查,发现前端调用后端接口时,部分接口出现404的现象。

  今天,我到公司比较晚,肯定是哪个小伙伴昨晚下班,走出办公室前没有祈祷服务器不要出问题。要把这个人揪出来,吊在服务器上祭天!

  得知运营的反馈后,我迅速登录服务器排查问题。首先,查看了接口服务的启动进程正常。验证接口服务的ip和端口是不是正常,结果也是没啥问题。接下来,通过Nginx转发请求,此时出现了问题,无法访问接口。同时Nginx的access.log文件中输出了如下日志信息。

  此时,从Nginx日志中发现,输出的状态为404,未找到后端的接口服务。为了进一步定位问题,我直接在线上环境通过curl命令的方式来访问接口服务,结果是正常的。

  既然已经定位到问题了,那我们接下来就要分析下产生问题的具体原因了。既然是Nginx的问题,我第一时间想到的就是调试Nginx查找错误原因。于是我在服务器命令行输入了如下命令来查看安装Nginx时的配置情况。

  注意:这里已经为Nginx配置了系统环境变量,假如没有配置系统环境变量,则要输入nginx命令所在目录的完整路径,例如:

  于是我在服务器上找到了Nginx的安装文件,在命令行输入如下命令重新编译Nginx。

  注意:这里,在停止Nginx服务前,已经将此Nginx从接入层网关中移除了,所以不可能影响线上环境。为了尽最大可能避免使用新编译的nginx命令重启Nginx出现一些明显的异常问题,这里通过脚本先停止Nginx服务,然后复制nginx命令后,再启动Nginx服务。

  接下来,在服务器命令行输入如下命令监听error.log文件的输出日志。

  然后模拟访问http接口,能够正常的看到error.log文件中输出如下信息。

  Nginx在进行转发时,分别匹配了“/”,“file/”,“~/base”,最终将请求转发到了“/base”,如下所示。

  我们再来看看Nginx的配置,打开nginx.conf文件,找到下面的配置。

  看了Nginx的配置后,相信很多小伙伴应该都知道怎么解决问题了,没错那就是把nginx.conf中的如下配置。

  不区分大小写匹配任何以gif、jpg、jpeg结尾的请求,并将该请求重定向到 /logo.png请求

  (1)last 和 break 当出现在location 之外时,两者的作用是一致的没有一点差异

  比如:我们应该将符合“/test/(\d+)/[\w-.]+” 这个正则表达式的URL重定向到一个固定的页面。符合这个正则表达式的页面可能是:、等

  从上面的介绍能够准确的看出,这里能够正常的使用rewrite重定向或者alias关键字来达到我们的目的。因此,这里能这样做:

  鸡年已经来到!小伙伴们开工大吉!在生活中美滋滋的在家中在线看剧、玩儿网游,却总会出现卡顿和缓冲缓慢的现象,让人感到非常的气恼。于是,家中的无线路由器便成为了人们撒气的对象,“千错万错都是这个破无线路由器的错”!默默躺在角落里吃灰,24小时都不得休息的路由器,心里纵有千般苦也不会说出来。要知道,出现网速慢、卡顿等这样的问题,并非全是无...