Appearance
Connection: keep-alive
明显的预知用户会在当前连接上有下一步操作时开启 keep-alive,复用连接。
什么时候不用
访问内联资源一般用缓存,不需要开启 keep-alive,能够减少无效的资源占用。
配置
keepalive_time
限制一个开启 keep-alive 的 TCP 连接的最大连接时间。1.19.10新功能。
keepalive_timeout
用于设置 Nginx 服务器与客户端保持连接的超时时间,设置为 0 时表示关闭 keep-alive。
keepalive_timeout 65 65,配置两个数字会在响应头中添加字段 Keep-Alive: timeout=65 表示 HTTP1.0 开启长连接。
send_timeout
两次向客户端写操作之间的间隔 如果大于这个时间则关闭连接,默认为 60s。注意耗时的同步 操作值设置得太小有可能导致丢弃用户连接。
keepalive_requests
单个连接中可处理的请求数,默认 1000。
keepalive_disable
不对某些浏览器建立长连接,默认 msie6。
nginx
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65 65;
upstream httpds {
sticky;
server 192.168.44.102;
server 192.168.44.103;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://httpds;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}上游服务器配置 keep-alive
在 upstream 中所配置的上游服务器默认都是短连接,即每次请求都会在完成之后断开。
nginx
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream httpds {
keepalive 100;
keepalive_timeout 65;
keepalive_requests 1000;
server 192.168.44.102;
server 192.168.44.103;
}
server {
# 配置 http 版本号
proxy_http_version 1.1;
# nginx 转发给上游服务器时会将 Connection 设置为 close
# 需要手动设置为 "" 表示清除 close 或 设置为 keep-alice 开启长连接
proxy_set_header Connection "";
listen 80;
server_name localhost;
location / {
proxy_pass http://httpds;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}