【nginx出现504错误的原因分析及解决】

举杯邀明月、 2024-06-17 08:37:01 阅读 91

项目场景:

nginx代理到后端应用(java)


问题描述

接口出现504 (Gateway Time-out)错误,即网关超时


原因分析:

1、接口响应慢,优化程序。

2、nginx的proxy超时时间配置,比如nginx配置的超时时间为60s,而后端应用需要100s才能返回。


解决方案:

通过本地排查发现,接口响应需要80s左右,而nginx配置的超时时间是65s。

由于历史原因,程序优化代价过大,所以采用增加nginx超时时间的方式。

先看下nginx使用的是什么协议(proxy/fastcgi):

(可以根据需求将以下配置加在http或server或location模块)

如果使用proxy_pass进行请求转发,那我们就配置proxy相关的参数:

proxy_connect_timeout 100; #nginx跟后端服务器连接超时时间(代理连接超时)默认60sproxy_read_timeout 100; #后端服务器数据回传时间(代理发送超时)默认值60sproxy_send_timeout 100; #连接成功后,后端服务器响应时间(代理接收超时)默认值60s

如果使用fastcgi_pass进行请求转发,那就配置fastcig相关的参数:

fastcgi_connect_timeout 1800s;#nginx跟后端服务器连接超时时间(代理连接超时)默认60sfastcgi_send_timeout 1800s;#后端服务器数据回传时间(代理发送超时)默认值60sfastcgi_read_timeout 1800s;#连接成功后,后端服务器响应时间(代理接收超时)默认值60s

修改完重启nginx生效



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。