nginx keep-alive
时间: 2025-01-06 19:36:38 浏览: 58
### Nginx Keep-Alive 配置与用法
Nginx 的 `keep-alive` 功能允许客户端和服务器之间保持连接,在多个请求间重复利用同一个 TCP 连接,从而减少建立新连接所需的时间开销并提高性能。
#### HTTP级别的Keep-Alive设置
对于HTTP协议层面的持久连接控制,主要通过调整http, server 或 location 块中的如下参数实现:
- **keepalive_timeout**: 定义了向客户端发送响应后等待后续请求的最大时间间隔。如果在这个时间段内没有新的请求,则关闭该连接。通常建议设为5到75秒之间的值[^1]。
```nginx
http {
...
keepalive_timeout 65;
}
```
- **keepalive_requests**: 设置单次TCP连接上所能处理的最大请求数量,默认情况下这个数值较大(比如100),可以根据实际负载情况进行适当调优.
```nginx
server {
...
keepalive_requests 100;
}
```
#### 对于上游服务器(Upstream)的Keep-Alive支持
当作为反向代理时,可以针对后端服务启用更高效的长链接机制——即所谓的“upstream keepalive”。这涉及到几个特定指令的应用:
- **keepalive**: 指定每个工作进程可维持多少条闲置的keepalive连接至指定的upstream组成员;这些连接将在必要时被重用而不是每次都新建.
```nginx
upstream backend {
server backend1.example.com;
server backend2.example.com backup;
keepalive 32;
}
```
- **keepalive_timeout (in upstream context)**: 类似于前面提到过的版本,但是作用范围仅限于此处定义的服务集群内部通信超时设定.
```nginx
location /some/path/ {
proxy_pass http://backend;
# Upstream-specific timeout setting.
proxy_http_version 1.1;
proxy_set_header Connection "";
keepalive_timeout 60s;
}
```
上述配置使得前端Nginx能够更加高效地管理同后端应用间的交互过程,特别是在高并发场景下有助于降低资源消耗以及提升整体吞吐能力。
阅读全文
相关推荐



















