Nginx请求upstream timed out 错误时通常会尝试重新请求上游服务器(504 Gateway Timeout)

本文主要是介绍Nginx请求upstream timed out 错误时通常会尝试重新请求上游服务器(504 Gateway Timeout),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

重新记录一下这个重复的nginx请求的问题:

背景

一个导出报表任务,下载报表时,发生了导出超时:504 Gateway Timeout的错误。

504 Gateway Timeout的原因如下

  1. Nginx配置问题:检查您的Nginx配置是否正确。确保Nginx已经正确地重新加载了新的配置。您可以使用nginx -t命令来测试Nginx配置文件的语法是否正确,然后使用nginx -s reload重新加载配置。
  2. Nginx日志:查看Nginx的访问日志和错误日志,以了解请求是否到达Nginx服务器,以及Nginx服务器是否有任何错误。这些日志通常位于/var/log/nginx/目录下。
  3. 上游服务器响应缓慢:如果Nginx的上游服务器(例如您的应用程序服务器)响应缓慢或者无响应,也会导致504错误。您可以通过直接访问上游服务器来测试它是否正常工作。
  4. 网络问题:网络问题也可能导致504错误。确保网络连接畅通,没有防火墙或者代理服务器的限制。
  5. 资源不足:如果上游服务器资源不足,也可能导致504错误。您需要检查上游服务器的资源利用情况,确保它有足够的资源来处理请求。

原因

而我发生这个错误,是因为上游服务器响应多次超时导致的。 因为 Nginx 在遇到 upstream timed out 错误时通常会尝试重新发送请求,也就是会重放原先的请求到上游服务器。

Nginx 有一些相关的配置选项可以用来控制重试行为,其中包括:

  • proxy_connect_timeout:用于设置连接超时时间,即 Nginx 等待与上游服务器建立连接的最长时间。
  • proxy_send_timeout:用于设置向上游服务器发送请求的超时时间。
  • proxy_read_timeout:用于设置从上游服务器读取响应的超时时间。
  • proxy_next_upstream:用于设置出现错误时 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秒。

解决

对接口直接加缓存,就可以避免第二次重放请求时,覆盖了第一次的请求所写的文件。

这篇关于Nginx请求upstream timed out 错误时通常会尝试重新请求上游服务器(504 Gateway Timeout)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/872311

相关文章

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

Linux服务器Java启动脚本

Linux服务器Java启动脚本 1、初版2、优化版本3、常用脚本仓库 本文章介绍了如何在Linux服务器上执行Java并启动jar包, 通常我们会使用nohup直接启动,但是还是需要手动停止然后再次启动, 那如何更优雅的在服务器上启动jar包呢,让我们一起探讨一下吧。 1、初版 第一个版本是常用的做法,直接使用nohup后台启动jar包, 并将日志输出到当前文件夹n

速盾:直播 cdn 服务器带宽?

在当今数字化时代,直播已经成为了一种非常流行的娱乐和商业活动形式。为了确保直播的流畅性和高质量,直播平台通常会使用 CDN(Content Delivery Network,内容分发网络)服务器来分发直播流。而 CDN 服务器的带宽则是影响直播质量的一个重要因素。下面我们就来探讨一下速盾视角下的直播 CDN 服务器带宽问题。 一、直播对带宽的需求 高清视频流 直播通常需要传输高清视频

Windows下Nginx的安装及开机启动

1、将nginx-1.16.1.zip解压拷贝至D:\web\nginx目录下。 2、启动Nginx,两种方法: (1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过。 (2)打开cmd命令窗口,切换到nginx目录下,输入命令 nginx.exe 或者 start nginx ,回车即可。 3、检查nginx是否启动成功。 直接在浏览器地址栏输入网址 http://lo

nginx介绍及常用功能

什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务。 Apache:重量级的,不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。这些都决定了Apache不可能成为高性能WEB服务器  nginx:

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配(Exact Match)2. 正则表达式匹配(Regex Match)3. 前缀匹配(Prefix Match) 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中,location 指令用于定义如何处理特定的请求 URI。由于网站往往需要不同的处理方式来适应各种请求,NGINX 提供了多种匹

nginx长连接的问题

转自: http://www.360doc.com/content/12/1108/17/1073512_246644318.shtml

NGINX轻松管理10万长连接 --- 基于2GB内存的CentOS 6.5 x86-64

转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=190176&id=4234854 一 前言 当管理大量连接时,特别是只有少量活跃连接,NGINX有比较好的CPU和RAM利用率,如今是多终端保持在线的时代,更能让NGINX发挥这个优点。本文做一个简单测试,NGINX在一个普通PC虚拟机上维护100k的HTTP

CRtmpServer转推流到Nginx Rtmp及SRS(SimpleRtmpServer)的经历

转自:http://blog.csdn.net/fengyily/article/details/42557841 本人一直用的是CRtmpServer服务,在CRtmpServer服务中根据自已的想法也加入了许多功能,如通过http接口来加载配置等,苦于不支持HLS,自已添加ts分片水平又有限,思来想去决定借助SimpleRtmpServer的HLS功能。说干就干,马上查找相关资源

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww