Nginx解决接口请求超时方案

问题描述:

后端代码查询缓慢,导致接口请求超时异常
Status Code: 504 Gateway Time-out

解决方案

修改ngnix配置文件,增加超时时间

server {
	location / {
		...
		proxy_connect_timeout   1800;
		proxy_send_timeout      1800;
		proxy_read_timeout      1800;
		...
	}
}
  1. proxy_connect_timeout:定义与后端服务器建立连接的超时时间,单位为秒。在超过指定时间后仍无法建立连接,代理服务器将中断连接并返回错误。
  2. proxy_send_timeout:定义向后端服务器发送请求的超时时间,单位为秒。如果发送请求的时间超过指定超时时间,代理服务器将中断连接并返回错误。
  3. proxy_read_timeout:定义从后端服务器接收响应的超时时间,单位为秒。如果从后端服务器接收响应的时间超过指定超时时间,代理服务器将中断连接并返回错误。

配置以上内容即可解决问题

其它有关ngnix超时配置参数介绍

http {
    ...
    fastcgi_connect_timeout 3000;
    fastcgi_send_timeout 3000;
    fastcgi_read_timeout 3000;
    ...
}
  1. fastcgi_connect_timeout:定义与 FastCGI服务器建立连接的超时时间,单位为毫秒(ms)。在超过指定时间后仍无法建立连接,Web 服务器将中断连接并返回错误。
  2. fastcgi_send_timeout:定义向 FastCGI服务器发送请求的超时时间,单位为毫秒(ms)。如果发送请求的时间超过指定超时时间,Web 服务器将中断连接并返回错误。
  3. fastcgi_read_timeout:定义从 FastCGI 服务器接收响应的超时时间,单位为毫秒(ms)。如果从 FastCGI服务器接收响应的时间超过指定超时时间,Web 服务器将中断连接并返回错误。

FastCGI 和后端服务器区别:

  • FastCGI 进程是一个特定用途的进程,专门用于处理动态内容的生成和处理,通常作为 Web 服务器的插件或扩展。
  • 后端服务器是一个更通用的概念,指代提供服务的实际服务器,包括各种类型的服务组件,不仅限于 FastCGI 进程
http {
    ...
	keepalive_timeout  100;
    ...
}

keepalive_timeout:参数定义了 Keep-Alive 连接的最大空闲时间,即在一个 Keep-Alive 连接上没有数据交换时,服务器将保持连接打开的时间。一旦超过这个时间仍然没有数据交换,服务器将关闭该连接。

一般来说,合适的 keepalive_timeout 可以提高性能和减少延迟,但设置过长可能会消耗服务器资源。通常情况下,建议根据实际情况和负载情况来调整 keepalive_timeout 的数值。常见的配置包括:

  • 当网站访问量较大时,可以适当增加 keepalive_timeout,以减少连接建立的开销,提高性能。
  • 若服务器资源有限或者需要及时释放连接资源时,可以适当缩短 keepalive_timeout

Nginx 中的默认值通常是 75 秒,可进行修改。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值