upstream timed out (110: Connection timed out) while reading response header from upstream

文章主要讨论了Nginx配置中的关键参数,如缓冲区大小、超时时间以及HTTP版本设置,如何影响服务器性能和后端响应速度。通过调整这些参数,例如增大缓冲区、延长超时时间及启用持久连接,可以有效解决后端服务器响应慢的问题。
摘要由CSDN通过智能技术生成

原因:
 1、nginx缓冲区太小或超时时间太短
 2、后端服务器响应慢
解决方案:


1、设置缓冲区大小和超时时长

server {
    listen       8080;
    server_name  XXX.XXX.com;
    large_client_header_buffers 4 16k;     # 读取客户端请求头的缓冲区的最大数量和大小
    client_max_body_size 300m;     #设置nginx能处理的请求大小,超过请求的大小返回异常码413
    client_body_buffer_size 128k;  #请求主体的缓冲区大小。请求主体超过缓冲区大小就会写入临时文件,缓冲区太小服务器发我跟就会跟缓慢
    proxy_connect_timeout 600;   #nginx连接到后端服务器的连接超时时间,发起握手等候响应超时时间。默认60s
    proxy_read_timeout 600;    #连接成功后,等候后端服务器响应时间(后端服务器处理请求时间)
    proxy_send_timeout 600;    #后端服务器数据回传时间
    proxy_buffer_size 64k;     #nginx可从服务器一次接收的最大数据大小
    proxy_buffers  4 32k;      #该指令设置缓冲区的大小和数量,从被代理的后端服务器取得的响应内容,会放置到这里. 默认情况下,一个缓冲区的大小等于内存页面大小,可能是4K也可能是8K,这取决于平台。
    proxy_busy_buffers_size 64k;  #nginx会在没有完全读完后端响应的时候就开始向客户端传送数据,所以它会划出一部分缓冲区来专门向客户端传送数据(这部分的大小是由proxy_busy_buffers_size来控制的,建议为proxy_buffers中单个缓冲区大小的2倍),然后它继续从后端取数据,缓冲区满了之后就写到磁盘的临时文件中。
    proxy_temp_file_write_size 64k;    #临时文件由proxy_max_temp_file_size和proxy_temp_file_write_size这两个指令决定。
    proxy_temp_file_write_size #是一次访问能写入的临时文件的大小,默认是proxy_buffer_size和proxy_buffers中设置的缓冲区大小的2倍,Linux下一般是8k。
    }

2、设置http版本和header的Connection来解决该后端服务器响应慢问题:

proxy_http_version 1.1;  #HTTP1.1之后,HTTP协议支持持久连接
proxy_set_header Connection "";   # 设置Connection为长连接(默认为no)  Nginx和Server之间维持长连接

location / {

proxy_pass http://xxxxx;

proxy_http_version 1.1;                        

proxy_set_header Connection "";     

}

修改nginx配置文件,增加以上配置后重启nginx即可解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值