nginx php-fpm常见错误码-执行超时

499 client has closed connection 客户端超时nginx

客户端设置超时时间,引起超时,即主动放弃链接,此时nginx返回499
通常浏览器超时时间较长,引起此种原因多见于curl操作设置的超时时间

相关配置

#nginx.conf
#是否忽略客户端拒绝
proxy_ignore_client_abort    on;

500 服务器内部错误

1,php代码存在语法错误

此时在php错误日志中可以找到对应错误

2,php代码抛出异常没有捕获

502 Bad Gateway 网关错误

1,nginx连接不到上游服务(php-fpm)

如:php-fpm没有启动端口配置不一致

2,代码执行时间超过php配置超时时间

php执行时间小于代码真实执行时间

#php.ini
max_execution_time 30s;
#php-fpm.ini
request_terminate_timeout 30;

504 Gateway Timeout 网关超时

504是指在上游(php-fpm)未执行完成的某一时刻,由于超过了nginx自身的超时时间,nginx从上游(php-fpm)无法按时从上游获取数据,就会返回504 此时上游服(php-fpm)还会继续执行

1,nginx配置超时时间超过上游执行时间

nginx.conf配置时间小于代码执行时间

#nginx.conf
fastcgi_read_timeout 10;

总结

499 专属nginx错误码,因客户端设置超时时间,超时引起,即客户端主动关闭连接时,nginx产生499错误码

500 语法错误等,即从源头主动通知的错误,此时nginx产生500错误

502 通常是上游服务器设置超时时间,超时引起,即无法按时完成,则返回给nginx,此时nginx产生502错误

504 通常是nginx设置超时时间,超时引起,无法等待上游的结果,此时nginx产生504错误

499,502,504都会因为超时而产生,区别是超时超了谁的时,499是超了客户端本身的连接时间,502是超了CGI的执行时间,504是超了服务器本身的最大允许读取时间。

参考:
https://www.cnblogs.com/kerwing/p/9072268.html
https://www.jianshu.com/p/7f65a1f53d2c

发表新评论