【Nginx】nginx 解决504超时问题

问题发现

最近在做测试,发现基本有所有接口响应时间过长的错误反馈都是504。

分析

nginx访问出现504 Gateway Time-out,一般是由于程序执行时间过长导致响应超时,例如程序需要执行90秒,而nginx最大响应等待时间为30秒,这样就会出现超时。

通常有以下几种情况导致

  1. 程序在处理大量数据,导致等待超时。
  2. 程序中调用外部请求,而外部请求响应超时。
  3. 连接数据库失败而没有停止,死循环重新连。

出现这种情况,我们可以先优化程序,缩短执行时间。假如是文件解析这种本身就耗时比较长的任务,则可以调大nginx超时限制的参数,使程序可以正常执行。

修改nginx配置

nginx.conf中,设置以下几个参数,增加超时时间

复制代码
http {
    ...
    fastcgi_connect_timeout 3000;
    fastcgi_send_timeout 3000;
    fastcgi_read_timeout 3000;
   
    ...
}
复制代码
 
复制代码
fastcgi_connect_timeout
fastcgi连接超时时间,默认60秒
 
fastcgi_send_timeout
nginx 进程向 fastcgi 进程发送请求过程的超时时间,默认值60秒
 
fastcgi_read_timeout
fastcgi 进程向 nginx 进程发送输出过程的超时时间,默认值60秒
复制代码
    server {
        listen 8888;
        location / {
            proxy_pass http://pdfs;
            proxy_connect_timeout   18000;
            proxy_send_timeout      18000;
            proxy_read_timeout      18000;
        }
    }

proxy_connect_timeout 1800s;#nginx跟后端服务器连接超时时间(代理连接超时)

proxy_send_timeout 1800s;#后端服务器数据回传时间(代理发送超时)

proxy_read_timeout 1800s;#连接成功后,后端服务器响应时间(代理接收超时)

相关推荐
七夜zippoe3 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
Fcy6485 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满5 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠5 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Harvey9035 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
珠海西格电力科技6 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
释怀不想释怀7 小时前
Linux环境变量
linux·运维·服务器
zzzsde7 小时前
【Linux】进程(4):进程优先级&&调度队列
linux·运维·服务器
聆风吟º8 小时前
CANN开源项目实战指南:使用oam-tools构建自动化故障诊断与运维可观测性体系
运维·开源·自动化·cann
NPE~8 小时前
自动化工具Drissonpage 保姆级教程(含xpath语法)
运维·后端·爬虫·自动化·网络爬虫·xpath·浏览器自动化