使用 Nginx webserver 很容易看到 504 网关超时错误。此超时错误通常由服务内容的后端连接上的许多原因造成。要修复 504 网关超时,您必须确定当前使用的是什么配置。
目录
如何查看 504 网关超时错误
不同的网站可以自定义 504 网关超时错误消息。下面是最常见的504错误消息:
- “504 Gateway Timeout”
- “504 Gateway Time-Out”
- “504 Gateway Timeout NGINX”
- “Nginx 504 Gateway Timeout”
- “HTTP 504 Gateway Timeout”
- “HTTP 504 Error”
- “HTTP 504”
- “Gateway Timeout (504)”
Nginx + FastCGI 网关超时错误(php-fpm)
对于 Nginx + FastCGI (php-fpm), 您应该尝试以这种方式调整 nginx 配置:
在 php.ini
文件中调整 max_execution_time
的配置 (CentOS 的路径是 /etc/php.ini
):
max_execution_time = 300
但是,您还应该从 PHP-FPM 更改 www.conf
文件中的 request_terminate_timeout parameter
(默认是被注释掉的)
pico -w /etc/php-fpm.d/www.conf
然后将变量设置为与 max_execution_time
相同的值 :
request_terminate_timeout = 300
现在让我们在 Nginx 虚拟主机配置中添加 fastcgi_read_timeout
变量:
location ~ .php$ { root /var/www/sites/nginxtips.com; try_files $uri =404; fastcgi_pass unix:/tmp/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_read_timeout 300; }
重启 nginx:
service nginx reload
使用 Nginx 作为代理的网关超时错误
对于作为 Apache web 服务器代理的 Nginx,这是你必须尝试修复的504网关超时错误:
在 nginx.conf
文件中加入如下变量:
proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600;
重启 nginx:
service nginx reload