Nginx keepalive_timeout设置后为什么客户端连接还是频繁断开?

诸葛希哲 阅读 4

我给Nginx配置了keepalive_timeout 65;keepalive_requests 100;,但前端用axios发送多个请求时,抓包发现连接还是在第6次请求后突然断开了。明明服务端配置支持100次复用啊,是不是哪里没配对?

尝试把超时时间调到75s后问题依旧,甚至出现444错误。这是我的配置片段:


http {
    keepalive_timeout 65;
    keepalive_requests 100;
    server {
        location /api {
            proxy_http_version 1.1;
            proxy_set_header Connection "";
        }
    }
}

客户端请求头已经加上了Connection: keep-alive,但错误日志显示:upstream timed out (110: Connection timed out) while reading response header,这和keepalive设置有关系吗?

我来解答 赞 3 收藏
二维码
手机扫码查看
1 条解答
燕丽 Dev
问题出在后端服务的keepalive设置,Nginx的keepalive只管到自己和客户端的连接,但你用的是proxy模式,需要额外配置upstream的keepalive。加上这个:

upstream backend {
server 127.0.0.1:8080;
keepalive 32;
}


然后把proxy_pass改成指向backend,超时问题就没了。444错误是因为你后端主动断开了空闲连接,调大后端的keepalive_timeout就行。
点赞
2026-02-19 15:12