nginx问题的排查方法

nginx问题的排查方法

当出现直接超时、处理返回慢时的报警时,nigix侧的故障排查参考方法有如下: 1、检查请求日志情况, tail -f logs/access.log ,看upstream_status字段。

   200:表示正常;
   502/503/504:表示处理慢,或者后端down机;再看upstream_response_time返回的时间是否真的较慢,有没有上百毫秒,或更高的,有则说明是后端服务有问题。
   404:表示请求的路径不存在或不对,文件不在了。查看客户端请求路径是否正确, 服务器上的文件、程序是否存在。
   403:表示无权限访问。 检查一下nginx.conf 是否有特殊的访问配置。
   499: 则是客户端的问题,或者代理上游服务器时间超时,代理主动关闭连接  此错误少见。

2、检查错误日志情况,tail -f logs/error_log ,查看是否有connect() failed、Connection refused、 Connection reset by peer等error错误日志,有则说明有可能nginx出现的连接数超负载等情况。

   (1)查看系统的网络连接数情况确认是否有较大的链接数
    # netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 
    解析:    CLOSED //无连接是活动的或正在进行
             LISTEN //服务器在等待进入呼叫
             SYN_RECV //一个连接请求已经到达,等待确认 
             SYN_SENT //应用已经开始,打开一个连接
             ESTABLISHED //正常数据传输状态/当前并发连接数
             FIN_WAIT1 //应用说它已经完成
             FIN_WAIT2 //另一边已同意释放
             ITMED_WAIT //等待所有分组死掉
             CLOSING //两边同时尝试关闭
             TIME_WAIT //另一边已初始化一个释放
             LAST_ACK //等待所有分组死掉   
   (2)查看系统的句柄配置情况,ulimit -n ,确认是否过小(小于请求数)
   (3)worker_rlimit_nofile、worker_connections配置项,是否过小(小于请求数)

发表新评论