作为一种选择,HTTP/1.0 持久连接可以通过传递 "Connection: Keep-Alive" 头字段到 upstream 服务器来使用,虽然这种方法并不被推荐。
对于 FastCGI 服务器,需要为持久连接设置 fastcgi_keep_conn:
upstream fastcgi_backend {
server 127.0.0.1:9000;
keepalive 8;
}
server {
...
location /fastcgi/ {
fastcgi_pass fastcgi_backend;
fastcgi_keep_conn on;
...
}
}
当使用 round-robin 之外的负载均衡方法时,需要在 keepalive 指令之前将他们激活。
SCGI 和 uwsgi 协议没有长连接的概念。
语法:least_conn;
默认值:—
上下文:upstream
描述:这一指令出现在版本 1.3.1 和 1.2.2 中。
定义一群应该在请求传递给具有最小有效连接的服务器时使用的负载均衡方法,要考虑到服务器的权重。如果有很多这样的服务器,将会使用带权重的 round-robin 方法。
语法:health_check [interval=time] [fails=number] [passes=number] [uri=uri] [match=name];
默认值:—
上下文:location
激活定期健康检查。
支持以下可选参数:
interval:两次连续性健康检查的间隔时间,默认为 5 秒;
fails:设置连续性健康检查失败的次数,超过这个次数的话这台服务器就被认为是不健康的,默认为 1;
passes:设置连续性健康检查通过的次数,超过这个次数的话这台服务器就被认为是健康的,默认为 1;
uri:定义健康检查请求用的 URI,默认为 "/";
match:定义健康检查返回通过的匹配块的配置;默认情况下,返回应该具有状态码 2XX 或者 3XX。
例如,
location / {
proxy_pass ;
health_check;
}