当 Nginx 发生 504 Gateway Time-out 时, 一般上原因是一些程式执行需时较长时间, 当执行时间超出 Nginx 的限制时, 便会出现 504 Gateway Time-out 问题, 如果排除了程式上的问题, 解决方法是将执行时限延长 (或者升级主机的硬件也可以)。
首先开启 Nginx 的网站设定档, Nginx 将网站设定档都放在 /etc/nginx/ 目录下, 下面以 www.phpini.com 为例:
# vi /etc/nginx/site-available/www.phpini.com.conf
在 “location ~ \.php$ {” 段落, 最后加入这行:
然后开启 /etc/php5/fpm/php.ini:
# vi /etc/php5/fpm/php.ini
找到以下一行:
#max_execution_time = 30
改成:
max_execution_time = 180
上面的 180 是秒数, 即 3 分钟。设定完成后储存盘案, 然后重新启动 Nginx 及 PHP-FPM:
RHEL 7 / CentOS 7:
# systemctl restart nginx
# systemctl restart php-fpm.service
# systemctl restart php-fpm.service
RHEL 6 / CentOS 6:
# service nginx restart
# service php-fpm restart
# service php-fpm restart
Ubuntu:
# restart nginx
# restart php5-fpm
# restart php5-fpm
补充一下,PHP FPM 跟 NGINX 都要延长才有效~
http://goodjack.blogspot.com/2018/08/increase-php-fpm-script-execution-time-with-nginx.html