项目场景:
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跟后端服务器连接超时时间(代理连接超时)默认60s
proxy_read_timeout 100; #后端服务器数据回传时间(代理发送超时)默认值60s
proxy_send_timeout 100; #连接成功后,后端服务器响应时间(代理接收超时)默认值60s
如果使用fastcgi_pass进行请求转发,那就配置fastcig相关的参数:
fastcgi_connect_timeout 1800s;#nginx跟后端服务器连接超时时间(代理连接超时)默认60s
fastcgi_send_timeout 1800s;#后端服务器数据回传时间(代理发送超时)默认值60s
fastcgi_read_timeout 1800s;#连接成功后,后端服务器响应时间(代理接收超时)默认值60s
修改完重启nginx生效
版权归原作者 举杯邀明月、 所有, 如有侵权,请联系我们删除。