重新记录一下这个重复的nginx请求的问题:
一个导出报表任务,下载报表时,发生了导出超时:504 Gateway Timeout的错误。
504 Gateway Timeout的原因如下:
nginx -t
命令来测试Nginx配置文件的语法是否正确,然后使用nginx -s reload
重新加载配置。/var/log/nginx/
目录下。而我发生这个错误,是因为上游服务器响应多次超时导致的。 因为 Nginx 在遇到 upstream timed out 错误时通常会尝试重新发送请求,也就是会重放原先的请求到上游服务器。
Nginx 有一些相关的配置选项可以用来控制重试行为,其中包括:
您可以在 Nginx 配置文件中设置这些选项,以便根据您的需求来调整 Nginx 对上游服务器的请求超时和重试行为。
例如,以下是一个简单的配置示例:
location / { proxy_pass http://backend; proxy_connect_timeout 5s; proxy_send_timeout 10s; proxy_read_timeout 20s; proxy_next_upstream error timeout; }
如果你没有设置这些配置值的话,Nginx的默认超时配置值可以根据不同的版本和发行版而有所不同。以下是一些常见的默认超时配置值:
proxy_connect_timeout
:默认为60秒。proxy_send_timeout
:默认为60秒。proxy_read_timeout
:默认为60秒。对接口直接加缓存,就可以避免第二次重放请求时,覆盖了第一次的请求所写的文件。