项目上有个需求,要求部署的一套主服务器和一套备份服务器实现一台宕机另一台生效,决定用nginx做集群配置;
1.准备一台代理服务器加上上文说到的两台服务器:
1)192.168.1.101 (nginx代理服务器)
2)192.168.1.102 (web主站点)
3)192.168.1.103 (web备份站点)
通过101站点访问到页面显示内容在102宕机后跳转到103;目标就实现了。
2.nginx部署自行百度;下面简述下集群配置:
upstream test{
server 192.168.1.102:8080;
server 192.168.1.103:8080 backup;
}
server {
listen 8080;
server_name 192.168.1.101;
location / {
proxy_pass http://test;
proxy_connect_timeout 1;
proxy_read_timeout 1;
proxy_send_timeout 1;
}
}
}
3.
负载均衡策略简述
目前Nginx的upstream模块支持6种方式的负载均衡策略(算法):轮询(默认方式)、weight(权重方式)、ip_hash(依据ip分配方式)、least_conn(最少连接方式)、fair(第三方提供的响应时间方式)、url_hash(第三方通过的依据URL分配方式)。
描述下使用较多的两种参数:
(1)轮询
最基本的配置方法,是upstream模块默认的负载均衡策略。每个请求会按时间顺序平均分配到不同的后端服务器。有如下参数:
fail_timeout | 与max_fails结合使用 |
max_fails | 在fail_timeout参数设置的时间内最大失败次数。如果在这个时间内,所有该服务器的请求都失败了,那么认为该服务器停机 |
fail_time | 服务器被认为停机的时长,默认10s(被认为停机的服务器尝试间隔?) |
backup | 标记该服务器为备用服务器。当主服务器停止时,请求会被发送到它这里 |
down | 标记服务器永久停机 |
注意:1.down标记的服务器会自动剔除;2.缺省就是轮询;3.此策略适合服务器配置无状态且短平块的服务使用
(2)weight
权重方式,在轮询策略的基础上指定轮询的几率。也可以认为是在轮询的基础上新增了一个weight的参数,此参数指定轮询的几率,值为number。upstream模块配置模板如下:
1 2 3 4 5 |
|
在该例子中,没有weight参数的服务器默认为1,weight的数值与访问比例成正比,所有weight值的总和为一个循环单位,服务器自身的weight值为循环单位内的轮询次数。
注意:1.权重越高分配到的请求越多;2.此策略可以和least_conn策略、iphash策略结合使用;3.此策略比较适合服务器硬件配置差距较大的情况。