发布网友 发布时间:2022-04-22 21:44
共1个回答
热心网友 时间:2022-05-13 06:43
你这个问题太简略,我只能罗列一下排查500错误的方式,也算是给个思路吧:
1、数据库异常:
1)检查数据库服务器,是否能够正常连得上,数据库机器是否挂了;
2)检查服务上的数据库相关的配置,是否正确;
3)检查swagger,看swagger页面是否能够正常访问,swagger里面的后台接口能否正常获取到数据库里面的数据;
4)如果数据库正常、配置正常,swagger也能获取到数据,而且查看日志的时候,发现日志报某些表不存在,但是登上某一台数据库,发现表是完整的。那么就需要检查一下所有的数据库机器里面的数据了。看看主从数据库里面的数据是否一致。如果数据不一致,且同步数据有问题,而服务正好连上问题数据库,那么就会出现页面上有些数据显示不出来,服务报500的情况;
5)如果是新搭建的环境,那就需要看看是否数据库没有进行数据的初始化了;
6)数据库的磁盘空间满了,这时候服务不一定会报500,但是页面上数据会加载不出来;
7)还遇到一种数据库异常就是,有一个鉴权的服务升级完了之后,发现所有的成员操作报没权限,但是服务是OK的。查看服务日志,日志报该服务配置的数据库用户没权限连接数据库。查看这个数据库的用户,发现这个库的用户和密码被谁删掉了(另一次是用户没有删,突然就没权限了),然后重新创建这个用户,重新授权,就OK了
2、域名异常
如果前台调该服务是通过域名调用的,需要考虑这个情况。
3、/etc/hosts没有配置解析
有一次发现A服务的页面上创先了B服务报500,A服务是通过域名调用的B服务后台服务。经过核对排查,发现因为两台机器的大小网、网络等原因,需要在A服务的/etc/hosts里面单独配置B服务的解析,加上IP和域名(如:10.0.0.0 www.baidu.com)才能正确解析到。于是加上解析之后,服务就不再报500了。
4、logout的 URL配置问题,网站的退出登录时,页面直接500
在首页退出登录,本来应该是界面回到最初的登录界面,但是退出登录之后,界面直接就是一串500的报错。于是查看tomcat下应用里面的inputs参数,检查log out这里对应的URL链接地址。换成正确的地址之后,500错误解决
5、memcached异常,页面登录,报500
在前端是加了memcached的,在登录页面输入用户名和密码登录,进去之后发现不是网站的首页,而是页面直接就是500的报错信息,报错信息还写了time out等等,其中注意到报错里面有两个IP地址,经核实,正是memcached的IP地址,于是查看memcached服务,确认是memcached服务异常引起的。