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在各种系统和环境中的安装及配置详细分析。
    2017-11-11
  • SQL操作Pandas DataFrame的三种方式示例详解

    SQL操作Pandas DataFrame的三种方式示例详解

    这篇文章主要为大家介绍了SQL操作Pandas DataFrame的三种方式示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • 排查Openresty获取不到Host请求头解决过程详解

    排查Openresty获取不到Host请求头解决过程详解

    这篇文章主要为大家介绍了排查Openresty获取不到Host请求头解决过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Nginx漏洞整改实现限制IP访问&隐藏nginx版本信息

    Nginx漏洞整改实现限制IP访问&隐藏nginx版本信息

    本文主要介绍了Nginx漏洞整改实现限制IP访问&隐藏nginx版本信息,通过配置Nginx的ACL,可以轻松实现,下面就来具体介绍一下,感兴趣的可以了解一下
    2024-03-03
  • nginx平滑升级及nginx配置文件详解

    nginx平滑升级及nginx配置文件详解

    这篇文章主要介绍了nginx平滑升级及nginx配置文件,nginx平滑升级并添加新功能,nginx.conf配置用于调试、定位问题的配置参数,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • Nginx中报错:Permission denied与Connection refused的解决

    Nginx中报错:Permission denied与Connection refused的解决

    这篇文章主要给大家介绍了在Nginx中报错:13: Permission denied与111: Connection refused的解决方法,文中介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-04-04
  • Nginx配置超时时间的排查步骤

    Nginx配置超时时间的排查步骤

    在 Nginx 中设置了 keepalive_timeout、client_header_timeout 和 client_body_timeout 后仍然不起作用,所以本文给大家介绍了Nginx配置超时时间的排查步骤,并有相关的代码示例供大家参考,需要的朋友可以参考下
    2024-11-11
  • Nginx服务器https配置的方法示例

    Nginx服务器https配置的方法示例

    这篇文章主要介绍了Nginx服务器https配置的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • nginx主动健康检查功能实现

    nginx主动健康检查功能实现

    nginx_upstream_check_module是一个Nginx的第三方模块,它可以实现 Nginx的主动健康检查功能,本文将介绍一个基于 Nginx 的第三方模块 nginx_upstream_check_module,它可以实现 Nginx 的主动健康检查功能,可以帮助我们更加有效地管理后端服务器,需要的朋友可以参考下
    2023-05-05
  • 负载均衡下的webshell上传+nginx解析漏洞的过程

    负载均衡下的webshell上传+nginx解析漏洞的过程

    这篇文章主要介绍了负载均衡下的webshell上传+nginx解析漏洞,首先介绍了负载均衡下webshell上传的四大难点及环境搭建教程,感兴趣的朋友跟随小编一起看看吧
    2024-02-02

最新评论