运维相关 如何解决504报错

504原因分析:

  1. PHP运行时间超时,导致程序报错504;
  2. Nginx运行时间超时,导致程序报错504;
  3. 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;

总结:请求超时可能是多种原因导致,具体情况具体分析,代码总是不会骗人的嘛。

504
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 2
aa24615

根本问题得优化代码

2年前 评论

@aa24615 这边只是说如何解决504报错 哈哈哈 不过你说的确实有道理,代码太渣导致运行时间过长不能简单的通过这个来解决。

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!