我尝试了以下建议:
How do I prevent a Gateway Timeout with FastCGI on Nginx
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
答案 0 :(得分:8)
definition of the 504 HTTP response code说:“服务器充当网关或代理,并没有收到上游服务器的及时响应。”因此,从后端服务器处理这个问题开始是有意义的。
您应该检查直接向后端服务器发出请求的情况。需要多长时间才能回复?
请注意,使用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那样。