解決 Nginx 504 Gateway Time-out

當 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

RHEL 6 / CentOS 6:

# service nginx restart
# service php-fpm restart

Ubuntu:

# restart nginx
# restart php5-fpm



Leave a Reply