JAVA开发(记一次504 gateway timeout错误排查过程)

一、问题与背景:

最近在发布一个web项目,在测试环境都是可以的,发布到生产环境通过IP访问也是可以的,但是通过域名访问就出现504 gateway timeout。通过postman去测试接口也是一样。ip和端口都可以通,域名却不行,百思不得其解。通过一顿百度搜索,解析说通过nginx配置文件配置这几个地方

bash 复制代码
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 256k;
  fastcgi_buffers 2 256k;
  fastcgi_busy_buffers_size 256k;
  fastcgi_temp_file_write_size 256k;

结果没有效果,但应该也有些场景应该是可以的,比如说通过IP访问也是报504的错误,但是不是我这种场景。

然后继续有指导说通过在server配置

bash 复制代码
  proxy_connect_timeout    6000;  #nginx跟后端服务器连接超时时间(代理连接超时)默认60s
  proxy_read_timeout       6000; #后端服务器数据回传时间(代理发送超时)默认值60s
  proxy_send_timeout       6000;  #连接成功后,后端服务器响应时间(代理接收超时)默认值60s

然后也是没效果。

应该也有些场景应该是可以的,比如说通过IP访问也是报504的错误,但是不是我这种场景。

上面的两种方案应该就是网络上目前提供的两种方案。但是并没有解决我的问题。

那么我们就要从头理解 504错误的场景了。也许并不完全是由于web服务器没有反应引起的。

二、504错误的定义和解析:

504错误代表网关超时 (Gateway timeout),是指服务器作为网关或代理,但是没有及时从上游服务器收到请求。

服务器(不一定是 Web 服务器)正在作为一个网关或代理来完成客户(如您的浏览器或我们的 CheckUpDown 机器人)访问所需网址的请求。 为了完成您的 HTTP 请求, 该服务器访问一个上游服务器, 但没得到及时的响应。

这通常意味着上游服务器已关闭(不响应网关 / 代理),而不是上游服务器和网关/代理在交换数据的协议上不一致。

正常情况下,是由于被请求服务器发送超时引起。

三、导致504错误的原理:

由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答 。

任何客户端在和网络服务器通讯时,都需经过以下循环:

从站点的 IP 名称 ( 即站点的网址-URL, 不带起始的 'http://') 获得一个 IP 地址。这个对应关系 ( 即由 IP 名称向 IP 地址转换的对应关系 ) 由域名服务器 (DNSs) 提供。

打开一个 IP 套接字 (socket) 连接到该 IP 地址。

通过该套接字写 HTTP 数据流。

从Web服务器接受响应的 HTTP 数据流。该数据流包括状态编码, 其值取决于 HTTP 协议 。 解析该数据流得到 状态编码和其他有用信息。

该错误在以上所述的最后一步生成,即当客户端收到 HTTP 状态编码 并识别其为 '504' 时。

这个问题完全是由后端电脑之间 IP 通讯缓慢而产生, 可能包括Web服务器。 如果Web服务器由某一网站托管, 只有负责那个网站设置的人员 才能解决这个问题。

网络上代理和缓存的使用日渐增加。尽管CheckUpDown 机器人将总是试图 ' 钻入 ' 真正收管您的网站的电脑, 但是HTTP 请求实际上落在哪里并不能完全控制。 只要在处理HTTP请求的一连串电脑中, 有一个环节坏了,类似504的错误就很容易产生。

四、ip能访问域名访问报504错误最后解决:

那就可能是域名解析的环境加入防火墙的环节也可能出错导致504。结果后面排查发现域名解析对应端口配置错误导致了504.后面修改了策略,最终解决了问题。

五、504错误还可能是以下场景:

  1. 计算机浏览器错误:当浏览器配备或设置中有一些错误时,就会出现这个错误

  2. DNS错误:域DNS配备不当可能导致浏览域时出错

  3. 网络不稳定:代理与Web服务器之间的数据连接不良可能导致响应延迟

  4. Web服务器速度慢:Web服务器特性低可能导致网关ip请求超时

  5. 504错误的主要原因是防火墙配置错误:防火墙规则不正确

504 Gateway 如何解决timeout

  1. 刷新页面

处理504 Gateway timeout错误的第一步是点击更新/重新加载按钮,按F5或再次尝试从搜索框中搜索URL,然后尝试网页。可能是服务器

当时收到的要求比平时多,很多要求都解决不了,导致短时间504 Gateway Timeout。

  1. 重新启动各种设备

解调器、无线路由器、网络交换机或其他网络硬件的临时问题很可能会导致你看到的504 Gateway Timeout。尝试重启这种设备可能对每个人都有帮助。

  1. 检查代理服务器的设置

使用浏览器或程序 检查代理服务器设置,确保其正确、准确。网络设置不正确很可能导致504 Gateway timeout错误。

  1. 更改DNS服务器

变更DNS服务器,特别是在互联网上的各种设备遇到同样错误的情况下。您看到的504 Gateway Timeout的错误很可能是由于您正在使用的DNS服务器问题造成的。

  1. 修复错误的防火墙配置

防火墙是页面的守护者。它可以保护您的网站免受故意访问者的攻击。然而,您服务器中的网络防火墙可能会遇到一些错误、不正确的设备或适当的标准阻止连接,这将导致504 Gateway timeout错误。

  1. 联系您的服务器服务提供商

在某些情况下,试着联系您的服务器服务提供商。这个问题可以更有效地发现。

  1. 稍后试着浏览这个网站

如果任何其他方法都不成功,那么你最后的选择就是稍微试着浏览一下这个网站。

相关推荐
用户03284722207035 分钟前
如何搭建本地yum源(上)
运维
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz3 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智3 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
古城小栈3 天前
Unix 与 Linux 异同小叙
linux·服务器·unix
施努卡机器视觉3 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造