server指令
server指令用于设置组内的服务器,其语法结构为
server address [parameters];address,服务器的地址,可以是包含端口号的IP地址(IP:Port)、域名或者以“unix:”为前缀用于进程间通信的Unix Domain Socket。
parameters,为当前服务器配置更多属性。这些属性变量包括以下内容:
weight=number,为组内服务器设置权重,权重值高的服务器被优先用于处理请求。此时组内服务器的选择策略为加权轮询策略。
max_fails=number,设置一个请求失败的次数。在一定时间范围内,当对组内某台服务器请求失败的次数超过该变量设置的值时,认为该服务器无效(down)。默认设置为1。
fail_timeout=time,默认设置为10 s。有两个作用:
一是设置 max_fails 指令尝试请求某台组内服务器的超时时间;
另一个作用如果一台服务器被认为是无效(down)的,该变量设置的时间为认为服务器无效的持续时间。在这个时间内不再检查该服务器的状态,并一直认为它是无效(down)的。
backup,将某台组内服务器标记为备用服务器,只有当正常的服务器处于无效(down)状态或者繁忙(busy)状态时,该服务器才被用来处理客户端请求。
down,将某台组内服务器标记为永久的无效状态,该服务器暂不参与负载均衡
Example
upstream backend
{
server backend1.example.com weight=5;
server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
server unix:/tmp/backend3;
}在该示例中,我们设置了一个名为backend的服务器组,组内包含三台服务器,分别是
基于域名的backend1.example.com
backend1.example.com的权重设置为5,为组内最大,优先接收和处理请求;
基于IP地址的127.0.0.1:8080
对本地服务器127.0.0.1:8080的状态检查设置是,如果在30 s内连续产生3次请求失败,则该服务器在之后的30s内被认为是无效(down)状态。
用于进程间通信的Unix Domain Socket。
Last updated