504 原因分析:
php 运行时间超时,导致程序报错 504;
Nginx 运行时间超时,导致程序报错 504;
php-fpm 运行超时,导致程序报错 504。
1. PHP 代码导致程序报错
首先确认 PHP 版本,PHP5.4 版本下有一个叫做 safe_mode 安全模式的运行模式,一旦开启后,一些函数将会失效,例如我们解决 PHP 运行时间限制的函数 set_time_limit 以及 php.ini 中的 max_execution_time 如果你开启了这一模式 请关闭后重启 PHP。
PHP 默认安全模式是关闭的 所以如果你没有开启过安全模式,只需要修改 php.ini 中的 max_execution_time 选项,或者代码中使用 set_time_limit 即可解决 PHP 超时导致的 504 错误。
2. Nginx 请求超时导致程序报错
如果 PHP 代码处理以后还是报 504 错误,我们就可以从 ngxin 上找找看是否是 nginx 访问超时导致的错误。
proxy_connect_timeout 1000;
proxy_send_timeout 1000;
proxy_read_timeout 1000;
send_timeout 1000;
将上述代码加入 nginx 配置项中,重启 nginx 后生效,再次尝试是否解决请求超时问题。
3. fastcgi 请求超时导致程序报错
如果更改以上内容仍然无法解决 504 的错误,那么很可能是 fastcgi 请求超时导致了程序访问超时,这个时候只需将下述内容加入 ngxin fastcgi 相关配置中,就可以解决请求超时的问题。
fastcgi_connect_timeout 1000;
fastcgi_send_timeout 1000;
fastcgi_read_timeout 1000;
总结:请求超时可能是多种原因导致,具体情况具体分析,代码总是不会骗人的嘛。
本文暂无评论 - 欢迎您