1. 语法结构
upstream中server指令语法如下:
server address [parameters]
语法详解
# server 必选
# address 必选,可以是主机名、域名、ip或unix socket,也可以指定端口号
# parameters 可选参数,可以是如下参数:
# down 表示当前server已停用
# backup 表示当前server是备用服务器,只有其它非backup后端服务器都挂掉了或者很忙才会分配到请求
# weight 表示当前server负载权重,权重越大被请求几率越大,默认是1
# max_fails和fail_timeout 一般关联使用,如果某台server在fail_timeout时间内出现了max_fails次连接失败,则认为
# 该server已经宕机;fail_timeout秒后(这fail_timeout秒内不会有新的请求到达刚刚挂掉的节点上)会再有新请求
# 尝试连接挂掉的server,如果还是失败,重复上一过程,直到恢复;fail_timeout默认是10s,max_fails默认是1,即默认
# 只要发生错误就认为服务器挂掉了,如果将max_fails设置为0,则表示取消这项检查。
配置示例
# 负载均衡配置"website_01" upstream website_01 { # 标记服务节点是备用机,仅在其他服务器都宕机以后,才会加入到集群中,被用户访问到 server 192.168.66.1:8080 backup; # 标记服务节点不可用 server 192.168.66.2:8080 down; # 表示单个服务器的最大连接数,防止服务器超载,默认0,表示没有限制 server 192.168.66.3:8080 max_conns=500; # 表示失败几次,则标记server已宕机,剔出集群服务,默认1,设置为0则表示取消检查 server 192.168.66.4:8080 max_fails=2; # 表示失败的重试时间默认10秒 server 192.168.66.5:8080 fail_timeout=20; # 表示在15秒内请求失败达到3次后,则认为该server已经宕机;15秒后(这15秒内不会有新的请求到达 # 刚刚挂掉的节点上)会再有新请求尝试连接挂掉的server,如果还是失败,重复上一过程,直到恢复 server 192.168.66.6:8080 max_fails=3 fail_timeout=15; }
负载均衡配置"website_02"
upstream website_02 {
当前server负载权重,权重越大接收请求越多,默认为1
server 192.168.66.6:8080 weight=3;
# 当前server负载权重,权重越大接收请求越多,默认为1
server 192.168.66.7:8080 weight=1;
}