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