原文链接:https://blog.csdn.net/chinabestchina/article/details/96384179
因nginx配置导致http访问504处理
文章目录
因nginx配置导致http访问504处理
一、问题描述
二、问题分析
三、问题解决
四、扩展
一、问题描述
最近排查项目问题,发现这样的情况:
http请求服务,页面很快(很快,并没有过多等待)返回504(gateway timeout)失败,检查服务其实是正常的,只是处理时间偏长。
二、问题分析
其实错误很明显,http超时了,但页面等待时间很短就报504。再结合nginx转发,基本可以确定问题的原因是ngnix的超时时间设置过短。
三、问题解决
解决方法就是修改调大nginx的超时时间。
修改nginx配置文件中的http模块:vim /etc/nginx/nginx.conf
http{
#根据具体情况修改读取超时时间,单位秒
proxy_read_timeout 90;
}
四、扩展
这里对nginx超时时间进行简要总结
http{
#读取http头部的超时时间,单位秒,连接建立后,服务端接收http头部,规定时间内没收到,则超时,返回给客服端408(request time out)
client_header_timeout 60;
#读取http body的超时时间,单位秒,连接建立后,服务端接收body,规定时间内没收到,则超时,返回给客服端408(request time out)
client_body_timeout 60;
#发送响应超时时间,单位秒,服务端向客户端发送数据包,规定时间内客户端没收到,则超时
send_timeout 60;
#保持闲置连接的超时时间,单位秒,超过后服务器和浏览器都会关闭连接
keepalive_timeout 75;
#域名解析超时时间,单位秒
resolve_timeout 30;
#nginx服务器与被代理服务连接超时时间,代理超时
proxy_connect_timeout 60;
#nginx服务器发送数据给被代理服务器超时时间,单位秒,规定时间内nginx服务器没发送数据,则超时
proxy_send_timeout 60;
#nginx服务器接收被代理服务器数据超时时间,单位秒,规定时间内nginx服务器没收到数据,则超时
proxy_read_timeout 60;
}