nginx 502错误和504错误

我的服务器是node.js,我使用nginx作为反向代理。

现在我必须做一个耗时的https请求,但是我总是得到504网关超时错误。 和nginx / error.log说:
“上游超时”

所以我把nginx conf改成:
proxy_read_timeout 600;
proxy_connect_timeout 600;
client_max_body_size 32M;
client_body_buffer_size 512k;
proxy_send_timeout 600;
proxy_buffers 32 4k;
这一次不会有504错误,但是会变成502错误,而nginx /错误说:
“上游过早closures连接”
而且我发现这个错误会在我开始120秒的请求之后出现。
我的请求过程肯定会花费超过120s,因为它会执行一个耗时的mysql查询。

所以我不知道如何摆脱502错误。

从你所描述的,你现在的问题是在服务器上。 你需要在nginx和web服务器上设置超时。 默认情况下,节点的默认超时时间为2分钟。

看看server.setTimeout选项: http : //nodejs.org/api/http.html#http_server_settimeout_msecs_callback

希望这可以帮助。