我在我的Nginx服务器上得到一个504超时:
504 Gateway Time-out。该网站允许用户下载自定义数据文件。该站点在大多数情况下都可以正常运行,用户可以毫无问题地下载一些文件。问题是数据文件仅在请求时生成。因此,当请求复杂数据时,Python 后端需要一分钟以上的时间来生成文件并开始下载。因为一分钟内没有响应 Nginx 返回一个504 Gateway Time-out. 文件本身是 CSV 文件并且不是很大,因此在后端生成文件后下载速度很快,但我需要一种方法让 Nginx 等待更长时间。
我正在寻找一种将 Nginx 超时从 1 分钟增加到大约 10 分钟的方法。
到目前为止,我已经尝试过:
更改nginx.conf文件以在http {}大括号之间包含以下行
uwsgi_connect_timeout 75s;
proxy_connect_timeout 600;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
fastcgi_send_timeout 600s;
fastcgi_read_timeout 600s;
Run Code Online (Sandbox Code Playgroud)
我还尝试按照https://asdqwe.net/blog/solutions-504-gateway-timeout-nginx/ 的建议添加timeout.conf文件:/etc/nginx/conf.d/
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
Run Code Online (Sandbox Code Playgroud)
每次更改后,我都重新启动了服务器,但 1 分钟后仍然发生超时。这已经通过curl -o在服务器上运行 a来绕过任何服务提供商问题进行了进一步测试。输出如下。
$curl -o out-put-file.csv "./localhost/my/url"
% Total % Received % Xferd Average Speed Time Time Time …Run Code Online (Sandbox Code Playgroud)