总结之踩过的后台服务报500的坑

有时候遇上服务报500的错误,500错误是内部服务器错误。根据工作中所爬过的坑,小结一下目前遇到的服务报500的情况大致有下面几种:

1、数据库异常:
1)检查数据库服务器,是否能够正常连得上,数据库机器或者是否挂了;
2)检查服务上的数据库相关的配置,是否正确;
3)检查swagger,看swagger页面是否能够正常访问,swagger里面的后台接口能否正常获取到数据库里面的数据;
4)如果数据库正常、配置正常,swagger也能获取到数据,而且查看日志的时候,发现日志报某些表不存在,但是登上某一台数据库,发现表是完整的。那么就需要检查一下所有的数据库机器里面的数据了。看看主从数据库里面的数据是否一致。如果数据不一致,且同步数据有问题,而服务正好连上问题数据库,那么就会出现页面上有些数据显示不出来,服务报500的情况;
5)如果是新搭建的环境,那就需要看看是否数据库没有进行数据的初始化了;
6)数据库的磁盘空间满了,这时候服务不一定会报500,但是页面上数据会加载不出来;
7)还遇到一种数据库异常就是,有一个鉴权的服务升级完了之后,发现所有的成员操作报没权限,但是服务是OK的。查看服务日志,日志报该服务配置的数据库用户没权限连接数据库。查看这个数据库的用户,发现这个库的用户和密码被谁删掉了(另一次是用户没有删,突然就没权限了),然后重新创建这个用户,重新授权,就OK了

2、域名异常
有一次遇上服务A报500,查看了机器的后台进程,服务的配置、数据库,一切正常。而且使用服务A所在服务器的IP+端口访问后台swagger,也能够完整的获取到数据。但是使用服务A的域名去访问swagger的时候,发现swagger页面却无法打开,经过排查域名,发现该服务的域名丢失了,而前台调用该服务是通过域名调用的,因此出现了报500的情况。

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错误。正常情况下点击logout,就应该是界面回到最初的登录界面,但是点击logout退出登录之后,界面直接就是显示一串500的报错。于是查看tomcat下应用里面的inputs参数,检查logout这里对应的URL链接地址,发现URL链接有误。换成正确的地址之后,500错误解决。

5、memcached异常,页面登录,报500
在前端是加了memcached的,在登录页面输入用户名和密码登录,进去之后发现不是网站的首页,而是页面直接就是500的报错信息,报错信息还写了time out等等,其中注意到报错里面有两个IP地址,经核实,正是memcached的IP地址,于是查看memcached服务,确认是memcached服务异常引起的。

6、Haproxy的VIP异常
服务为双节点,走的HA,一次页面上出现服务报500,影响了业务的正常功能。但是以上5点原因都排查过,均是正常的。最后查看HA,发现是后台HA服务的VIP挂了,因此引起了服务报500。将vip处理好,问题得到解决。

目前遇到的大致就这些,后续再有,再继续补充。。。

原文地址:http://blog.51cto.com/10950710/2097221

时间: 2024-10-11 09:32:37

总结之踩过的后台服务报500的坑的相关文章

【原创总结】页面上出现服务报500的原因

有时候遇上服务报500,特别是后台服务会经常出现,500错误是内部服务器错误.遇上错误首先想到的肯定是先看看服务的进程还在不在,然后查看日志,从日志里面找原因. 根据工作中所爬过的坑,小结一下,可以从下面的方向进行排查: 1.数据库异常: 1)检查数据库服务器,是否能够正常连得上,数据库机器是否挂了: 2)检查服务上的数据库相关的配置,是否正确: 3)检查swagger,看swagger页面是否能够正常访问,swagger里面的后台接口能否正常获取到数据库里面的数据: 4)如果数据库正常.配置正

后台接口报500,前端获取报错详情message

最近和前端对接口的时候,前端说后台接口报500,不能获取里面的东西,然后就开始了这个研究,网上查了一些资料,发现报500里面的报错详情是可以获取的. 前端在调用接口的时候,加个catch,注意!!!这里打印的应该是error.response,而不是error,打印error是获取不到里面的东西的. .catch(error => { console.log(error.response.data.error.message,"5456654456") } 原文地址:https:

gazebo仿真踩坑--rviz中设定机器人的目标位置,move_base后台日志报错

启动仿真环境及各种节点(amcl,move_base,map_server)后,在rviz中设定机器人的目标位置,后台日志报错 [ INFO] [1571974242.864525935, 40.511000000]: Got new plan[ERROR] [1571974242.964186066, 40.612000000]: Extrapolation Error: Lookup would require extrapolation into the future.  Requeste

问题解决系列: 后台服务流量控制- 控制访问别的服务的速度

互联网的后台提倡大系统小做,微服务化.所以后台服务之间相互依赖,我依赖别人的,别人也依赖我的,这很正常. 但是后台服务讲稳定性.只有一切可控,才能谈稳定性. 为了不冲垮下游的服务,我们有两种做法:一种是下游服务做一个自我保护(具体实现方法下次再写),一种是上游保护下游. 比如A服务向B服务发送消息,B给A分配了每分钟3000条消息的访问量.那么A如何控制自己每分钟的访问量在3000次以内呢? 基本思路: 这是个分布式的问题,A服务可能包含了堕胎机器,所有的机器共享一个设定的配额 3000次/每分

highchart访问一次后台服务返回多张图表数据

本文承接上一篇,我们制作动态图表的时候,往往需要的不止一张图表,如果每张图表都与服务接口做一次交互的话未免太过频繁,这无论对前后还是后台都是一种压力,本文介绍一种一次访问返回多组数据的方式来减少前台与后台服务的交互,闲话少说,查看动态效果  →.→ 详细代码 ←.← 如上文所示,highchart 的 chart 属性可以添加 events 事件,上文中我们插入的事件为: events: { load: function () { var series = this.series[0]; var

android如何做到类似于微信那样后台服务不会被杀死?

问题描述 正在做一款锁屏应用. 做锁屏肯定用到了service,可是我发现每日手动点击自带的内存清理按钮的时候,我的那个service总是会被杀死. 而微信的后台服务却是一直正常的运行,不会被杀掉. 360的话也不会被杀死,但是360会重新启动.而且360的是两个后台服务,我猜有可能会相互作用的,杀死一个的时候另一个接收到广播把其重启. 尝试过用startForeground以及提高service优先级的方式,发现都不行,service都会被杀死. 反编译了一下微信的代码. 请大家帮忙想想办法吧

启动ssh服务报错

问题: 若出现获取的IP网络能ping通,但是ssh连接失败,查看sshd服务报错 原因:/etc/ssh/认证文件损坏. rm -r /etc/ssh/ssh*key systemctl restart sshd sudo ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key sudo ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key sudo ssh-keygen -t ecdsa -f /etc/ssh/s

Android四大组件——Service后台服务、前台服务、IntentService、跨进程服务、无障碍服务、系统服务

Service后台服务.前台服务.IntentService.跨进程服务.无障碍服务.系统服务 本篇文章包括以下内容: 前言 Service的简介 后台服务 不可交互的后台服务 可交互的后台服务 混合性交互的后台服务 前台服务 IntentService AIDL跨进程服务 AccessibilityService无障碍服务 系统服务 部分源码下载 前言 作为四大组件之一的Service类,是面试和笔试的必备关卡,我把我所学到的东西总结了一遍,相信你看了之后你会对Service娓娓道来,在以后遇

ceph升级到10.2.3 版本启动服务报错:Unknown lvalue 'TasksMax' in section 'Service'

#### ceph软件包升级完成,执行命令重启服务 sudo systemctl restart [email protected]"$HOSTNAME" #### 故障现象 服务可以启动,启动后显示有报错信息: Nov 23 17:14:45 ceph-6-12 systemd[1]:        [/usr/lib/systemd/system/[email protected]:18] Unknown lvalue 'TasksMax' in section 'Service'