nginx访问返回504问题及解决

 更新时间:2024年05月31日 11:19:57   作者:liujiangxu  
这篇文章主要介绍了nginx访问返回504问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

nginx访问返回504

现象

nginx后端代理为报表服务,错误日志大量出现上游服务超时,页面访问也会出现504返回,查看后发现服务本身没问题,问题着重在nginx本身,报表服务本身属于大查询,返回较慢。

nginx默认本身后端超时为60S,大查询的返回大于60S所以会有几率出现504请求失败

报错

2022/08/05 13:00:24 [error] 3389#e: *1092213 upstream timed out (110: Connection timed out) while reading upstream, client: 10.6. 18.19, server: localhost, request: “POST /rcenter/rpt/api/showReport HTTP/1.1”, upstream: “http://10.6.6.65:8880/rcenter/rpt/api/showReport” host: “10.6.6.67”

处理

增加后端超时时长参数

参数详解
proxy_connect_timeout与后端/上游服务器建立连接的超时时间
proxy_send_timeout与后端/上游服务器发送请求的超时时间
proxy_read_timeout与后端/上游服务器读取响应的超时时间
    server {
        listen 80;
        server_name localhost;
        location / {
                 root   html;
                 proxy_pass http://report;
		 proxy_set_header Host $host;
		 proxy_set_header X-Forwarded-For $remote_addr;
	   	 proxy_connect_timeout 600;
 	   	 proxy_send_timeout 600;
   		 proxy_read_timeout 600;

nginx504网关超时解决思路

环境

前端:nginx作代理

后端:nginx+php(耳朵分发服务)

问题:整套服务搭建完成之后,将打包好的ios包进行上传到分发服务器时,包传递完毕之后页面无法自动跳转

上述进度条走完之后,页面无法自动跳转。

解决思路

刚开始,以为是php的代码设置了超时时间,然后各种改代码,可是没什么卵用;然后以为是php有问题,然后修改php的超时时间,也没什么卵用。

最后,F12查看页面具体情况,发现:

原来是网关超时,应该是代理的nginx和后端nginx之间传输数据时发生超时。

最后,在前端nginx的配置文件中加入如下配置:

proxy_read_timeout 300

说明 该指令设置与代理服务器的读超时时间。它决定了nginx会等待多长时间来获得请求的响应。

这个时间不是获得整个response的时间,而是两次reading操作的时间。

如果后端有大文件传输的需求时,需要将此值调大一些。

proxy_send_timeout 300

说明 这个指定设置了发送请求给upstream服务器的超时时间。

超时设置不是为了整个发送期间,而是在两次write操作期间。

如果超时后,upstream没有收到新的数据,nginx会关闭连接

以上两个参数默认是60s超时,,由于上传的ios包需要的时间超过了60s,导致网关超时。

至此,问题得到解决。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Nginx路径匹配规则小结

    Nginx路径匹配规则小结

    本文主要介绍了Nginx路径匹配规则小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 一文详解Nginx日志的查找与分析技巧

    一文详解Nginx日志的查找与分析技巧

    在维护 Web 服务器时,Nginx 就像一位沉默的守门人,它通常运行得非常稳定,但一旦出现 502 Bad Gateway 或页面加载缓慢时,很多新手面对黑底白字的终端会感到迷茫,本文将带你快速掌握 Nginx 日志的查找与分析技巧,助你从容应对服务器故障,需要的朋友可以参考下
    2025-12-12
  • Nginx反向代理后无法获取客户端真实IP地址

    Nginx反向代理后无法获取客户端真实IP地址

    本文主要介绍了Nginx反向代理后无法获取客户端真实IP地址,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Nginx常用配置以及代理转发操作详解

    Nginx常用配置以及代理转发操作详解

    这篇文章主要给大家介绍了关于Nginx常用配置以及代理转发的相关资料,nginx一般被用来做反向代理,将请求转发到应用服务器上,比如tomcat的应用,需要的朋友可以参考下
    2023-09-09
  • 利用nginx实现动静分离的负载均衡集群实战教程

    利用nginx实现动静分离的负载均衡集群实战教程

    这篇文章介绍了利用nginx实现动静分离的负载均衡集群实战,本次用到的操作系统及服务,本次实验一共需要3台服务器,一台nginx做为负载均衡分发器和动静分离的分发器,两台apache做为后端服务器,使用nginx实现两台apache服务器的负载均衡和动静分离,需要的朋友可以参考下
    2023-03-03
  • Nginx安装lua-nginx-module模块的方法步骤

    Nginx安装lua-nginx-module模块的方法步骤

    ngx_lua_module 是一个nginx http模块,这篇文章主要介绍了Nginx安装lua-nginx-module模块的方法步骤,非常具有实用价值,需要的朋友可以参考下
    2018-12-12
  • nginx gzip 动态静态压缩详解

    nginx gzip 动态静态压缩详解

    这篇文章主要为大家介绍了nginx gzip 动态静态压缩实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Keepalived+Nginx双机配置小结

    Keepalived+Nginx双机配置小结

    本文主要介绍了Keepalived+Nginx双机配置小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-03-03
  • Nginx限流和黑名单配置的策略

    Nginx限流和黑名单配置的策略

    这篇文章主要介绍了Nginx限流和黑名单配置,Nginx的限流主要是两种方式,限制访问频率和限制并发连接数,Nginx 按请求速率限速模块使用的是漏桶算法,即能够强行保证请求的实时处理速度不会超过设置的阈值,感兴趣的朋友跟随小编一起看看吧
    2022-05-05
  • Rhit高效可视化Nginx日志查看工具

    Rhit高效可视化Nginx日志查看工具

    一个格式化 Nginx 日志,可快速阅读、查看 Nginx 日志的工具。 可以每秒处理百万行日志数据,感兴趣的可以了解一下
    2021-10-10

最新评论