回首页

问题

经同事反馈,网站访问不了

1查看磁盘 (正常)

df -h

2查看内存使用情况(正常)

free -h

3 登录阿里云查看网络请求流量及rds慢sql(正常)

4 查看nginx指定时间内的异常日志(有异常)

awk -F " " -v st="10/Mar/2020:10:30:50" -v et="10/Mar/2020:10:40:45" '{t=substr($4,2);if(t>=st && t<=et){print  $4,$5,$6,$9}}' /var/log/nginx/*.log | grep -E '499|504|502'
awk -F " " -v st="10/Mar/2020:01:30:50" -v et="10/Mar/2020:10:40:45" '{t=substr($4,2);if(t>=st && t<=et){print  t,FILENAME,$6,$7,$9}}' /var/log/nginx/*.log | grep -E '499|504|502'|sort

1

504错误代表网关超时 (Gateway timeout)

499 当客户端主动断开连接的时候,nginx就会返回499的状态码

综上可以分析出,请求时间太长造成客户端主动退出,或服务器响应超时

5 解决

1 查找第一次请求超时的接口,设置请求超时的时间

$ch = curl_init();
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, xxxx);//连接服务器前可允许的等待的时间
curl_setopt($ch, CURLOPT_TIMEOUT, xxxx);//连接成功后,多长时间响应完毕

2 nginx和php设置请求超时时间

3 设置nginx并发量