3

我尝试了以下建议:

如何在 Nginx 上使用 FastCGI 防止网关超时

nginx.conf(在 http 部分 {} 内)

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

但大约 60 秒后,我收到错误 504 网关超时。我们在 apache 前面有 nginxx,所以我不确定 apache 是否导致错误,但我们得到一个 504 网关超时,这显然来自 nginx

4

1 回答 1

9

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”工具是libwww-perl类似 Ubuntu 的 Linux 发行版上可用的软件包的一部分。通过发送“Host:”标头,您正在生成一个请求,就像 Nginx 一样。

于 2013-02-27T13:28:01.743 回答