Nginx 504网关超时

4

我尝试了以下建议:

如何在Nginx上使用FastCGI避免网关超时

在nginx.conf文件中(http section {}内)

#prevent gateway timeout
client_header_timeout 1000000;
client_body_timeout 1000000;
send_timeout 1000000;
fastcgi_read_timeout 1000000;

大约60秒后我遇到了一个错误504网关超时。我们在apache前面有nginxx,所以我不确定是apache引起的错误,但我们收到了明显来自nginx的504网关超时。


1
您还需要增加 keepalive_timeout - Thismatters
1个回答

11

504 HTTP响应代码的定义是这样说的:“服务器充当网关或代理,未能及时从上游服务器接收到响应。”因此,首先要将其视为后端服务器的问题。

您应该检查直接向后端服务器发出请求时会发生什么。它需要多长时间才能响应?

请注意,使用Apache,您可以配置日志以包括处理请求所需的时间。有关mod_log_config%t%T选项,请参见以下内容。

如果Nginx可以访问后端服务器,则您也可以从命令行访问。以下是执行和计时请求的示例语法:

time -p GET -H 'Host: publicname.com'  http://127.0.0.1:8080/path/to/request

“GET” 工具是 Ubuntu 类 Linux 发行版上可用的 libwww-perl 包的一部分。通过发送一个 “Host:” 标头,您生成了一个类似于 Nginx 的请求。

我无法直接访问服务器,因为如果使用端口号,WordPress将无法工作。但是我们在服务器上有另一个站点,我可以使用端口号访问它,并且它从未超时。只有在使用NGINX时才会超时。 - Chris Muench
2
我更新了我的答案,详细说明了如何以与Nginx相同的方式模拟请求。 - Mark Stosberg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接