解决504 GATEWAY TIMEOUT Nginx网关超时

这篇具有很好参考价值的文章主要介绍了解决504 GATEWAY TIMEOUT Nginx网关超时。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、背景

最近遇到一个问题504 GATEWAY TIMEOUT的问题,在浏览器的NetWork里面看是这个效果。时间大概是60s。

nginx504超时,PHP工程师知识点,PHP全栈日记,服务器运维/架构,nginx,gateway,phpnginx504超时,PHP工程师知识点,PHP全栈日记,服务器运维/架构,nginx,gateway,php

二、问题排查与解决

2.1 修改nginx配置

目前后端技术架构主要是nginx和php-fpm,前端主要是vue框架打包发布。
于是首先想到了是nginx超时时间或者与php的超时时间设置的过段,然后配置nginx.conf设置了这些参数。

http {
    ...
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    proxy_connect_timeout      300;
    proxy_read_timeout         300;
    proxy_send_timeout         300;
    keepalive_timeout  300;
    ...
}
nginx -s reload

2.2 修改PHP配置

然后发现并没有解决问题,504 GATEWAY TIMEOUT仍然在请求60秒左右被返回。然后又想到php的配置问题,决定调整一下php的一些参数。

vim /etc/php.ini
max_execution_time = 300 //设置执行时间为300秒保存

service php-fpm restart

// 然后去代码里面设置
set_time_limit(300);

2.3 进一步调整

经过了上面PHP的设置,发现也没有什么用,该超时还是超时。针对于一般的情况来说,上面的操作一般就能解决问题了。
然后又开始怀疑是不是vue框架本身的request有一个默认的超时。
于是通过浏览器把请求通过curl拿出来,去命令行执行。发现经过1分钟还是超时。
nginx504超时,PHP工程师知识点,PHP全栈日记,服务器运维/架构,nginx,gateway,php
到现在为止实际上还是没有解决问题。于是比较头疼。

2.4 找到原因

接着分析原因。看是否域名访问后的第一步没有直接到服务器。

1. 在服务器上面执行如下命令,查看机器ip,得到ip A
curl ifconfig.me
2. 然后使用ping命令查看域名指向得到ip B
ping 你的域名
3. 发现A和B不一样,问题终于找到了,说明域名是经过中转才到达我们的服务器
真实的超时是在B机器上面,而不是我们自己的服务器,所以这就是为啥上面的一系列调整没有生效的原因。
4. 马上来测试一下。`windows + R` 输入 `C:\WINDOWS\system32\drivers\etc` 回车,找到`hosts`文件。
5. 打开`hosts` 末尾追加`ipA 你的域名`。然后保存。这样就让域名直接指向了我们自己的服务器。

然后在进行请求,发现请求时长就可以超过60秒了。也没有再出现504 GATEWAY TIMEOUT的情况。

三、网上其他该问题的原因

3.1 PHP 执行时间过长

当 PHP 脚本的执行时间超过了 Nginx 配置中设置的超时时间时,会导致 Gateway Timeout 错误。可以通过增加 fastcgi_read_timeout 配置项来延长超时时间。

3.2 后端服务错误

如果 PHP 后端服务发生了错误,并且没有及时返回响应,那么 Nginx 就会在超时时间内等待,然后抛出 Gateway Timeout 错误。可以通过检查 PHP 代码和日志来解决这个问题。

3.3 PHP-FPM 配置问题

PHP-FPM 是一种常用的 PHP FastCGI 管理器,在配置不正确的情况下可能会导致 Gateway Timeout 错误。可以通过检查 PHP-FPM 配置文件(通常位于 /etc/php-fpm.conf 或 /etc/php-fpm.d/www.conf)来解决问题。

3.4 Nginx 配置问题

Nginx 的配置文件也可能会导致 Gateway Timeout 错误。可以通过检查 Nginx 配置文件(通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/default.conf)来解决问题。

3.5 网络问题

如果 PHP 后端服务无法正常连接或响应请求,那么也会导致 Gateway Timeout 错误。可以通过检查网络连接和防火墙设置来解决这个问题。

总结与思考

所以很多时候不要陷入到自己的常规思维里面去了,偶尔出去放松一下,回来或许有不一样的视角。今天内容就分享到这个,有疑问的,可以留言讨论哦,喜欢作者可以给个关注哟文章来源地址https://www.toymoban.com/news/detail-782278.html

到了这里,关于解决504 GATEWAY TIMEOUT Nginx网关超时的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx应用 解决Nginx - 504 Gateway Time-out问题

    目录 问题背景 问题分析 解决方法 拓展知识 问题背景 线上有个系统,最前端是设置了nginx作为代理,有个1个请求的接口需要耗时1.1分钟左右,老是出现Nginx - 504 Gateway Time-out的错误。 问题分析 绕过nginx直接访问应用tomcat直接的端口进行相同条件测试,发现没有问题,排除接

    2024年02月13日
    浏览(26)
  • Nginx 出现504 Gateway Time-out的解决方法

    客户在系统中上传文件的时候,如果上传文件过大,因为系统需要读取excel文件内容,进行处理,所以耗时比较长,导致等待超时。 nginx访问出现504 Gateway Time-out,一般是由于程序执行时间过长导致响应超时,例如程序需要执行90秒,而nginx最大响应等待时间为30秒,这样就会出

    2024年02月13日
    浏览(24)
  • PHP+Nginx经常出现502、504原因与解决方法

    很多新手刚开始做网站可能感觉不到502,504的问题,当等你网站到达了一定水平的时候,流量起来的时候,你会发现经常会遇到502、504类似的问题。 502 Bad Gateway:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。 将请求提交给网关如php-fpm执

    2024年02月15日
    浏览(22)
  • HTTP状态码504(Gateway Timeout)报错原因分析和解决办法

    HTTP状态码504表示\\\"Gateway Timeout\\\",这是一种服务器错误响应代码。 当我们访问网页遇到504错误时,意味着HTTP请求无法在服务器预定的时间内得到响应。 通常情况下,504错误是由以下一种或多种情况引起的,我们从用户和网站管理员角度来分析: 一、用户角度 1. 代理服务器问

    2024年02月10日
    浏览(33)
  • 关于Nginx的超时timeout配置

      本文主要介绍了Nginx的超时timeout配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 本文介绍 Nginx 的 超时(timeout)配置。分享给大家,具体如下: Nginx 处理的每个请求均有相应的超时设置。如果做好这些超时时间的限定,判定

    2024年02月07日
    浏览(21)
  • 微服务Gateway网关(自动定位/自定义过滤器/解决跨域)+nginx反向代理gateway集群

    目录 Gateway网关 1.0.为什么需要网关? 1.1.如何使用gateway网关 1.2.网关从注册中心拉取服务 1.3.gateway自动定位 1.4.gateway常见的断言 1.5.gateway内置的过滤器 1.6.自定义过滤器-全局过滤器 1.7.解决跨域问题 2.nginx反向代理gateway集群 2.1.配置文件 继  nacos注册中心+Ribbon负载均衡+完成

    2024年02月06日
    浏览(44)
  • 介绍HTTP错误码504 Gateway Timeout

    什么是HTTP错误码504? HTTP错误码504表示网关超时,它是一种服务器端错误响应状态码。当客户端向服务器发送请求时,如果服务器在一定时间内无法从上游服务器(例如应用程序服务器、数据库服务器)获取到响应,就会返回504错误码给客户端。 为什么会出现504错误? 504错

    2024年02月04日
    浏览(24)
  • JAVA开发(记一次504 gateway timeout错误排查过程)

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

    2024年02月11日
    浏览(31)
  • 一文速通Nginx网关与gateway网关区分

    目录 API网关介绍  gateway基本介绍 Nginx基本介绍 Nginx与API gateway网关 API网关介绍  网关的角色是作为一个 API 架构,用来保护、增强和控制对于 API 服务的访问。API 网关是一个处于应用程序或服务(提供 REST API 接口服务)之前的系统,用来管理授权、访问控制和流量限制等,

    2024年02月01日
    浏览(47)
  • Nginx、Kong、Apisix、Gateway网关比较

    Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。能够支撑 5 万并发链接,并且 cpu、内存等资源消耗却非常低,运行非常稳定,由C语言编写。支持负载均衡、限流熔断、热部署、安全认证等。 应用场景 http 服务器:独立提供 http 服务,用于

    2024年02月14日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包