0%

Nginx负载均衡测试

测试

1、在虚拟机中建立两个web服务器:
aaa网站,IP和端口为:192.168.1.107:8090
bbb网站,IP和端口为:192.168.1.107:8091

nginx可以设置监听多个不同端口,以达到访问不同网站的目的。
只要修改.conf文件中的 listen <端口号> 即可,如果不能访问,请检查iptables有没有开放端口。

2、将本机做为一台nginx代理服务器,IP为192.168.1.105
3、在本机的nginx的vhost目录建立任意.conf文件,或直接修改nginx.conf
设置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
upstream web_servers {  
#server ip地址:端口号 weight表示权值,权值越大,被分配的几率越大;
# max_fails
server 192.168.1.107:8090 weight=1 max_fails=2 fail_timeout=1;
server 192.168.1.107:8091 weight=1;
}
server {
listen 80;
server_name www.jiqun.com alias jiqun.com; #本地域名,集群
location / {
proxy_pass http://web_servers;
}

}

集群服务器策略参数:
1)down
表示单前的server暂时不参与负载
2)weight
默认为1.weight越大,负载的权重就越大。
3)max_fails
允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4)fail_timeout
max_fails 次失败后,暂停的时间。
5)backup
其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

upstream为代理的集群服务器,可以通过不同的参数制定不同的访问策略。
proxy_pass中的集群服务器名字要跟upstream后面的名字保持一样。

负载均衡算法

Nginx 的 upstream目前支持的分配算法:
1、轮询—1:1 轮流处理请求(默认)
每个请求按时间顺序逐一分配到不同的应用服务器,如果应用服务器down掉,自动剔除,剩下的继续轮询。
2、权重 ——you can you up
通过配置权重,指定轮询几率,权重和访问比率成正比,用于应用服务器性能不均的情况。
3、ip_哈希算法
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个应用服务器,可以解决session共享的问题。

搭建高可用的Nginx服务器集群

除了要实现网站的高可用,也就是提供n多台服务器用于发布相同的服务,添加负载均衡服务器分发请求以保证在高并发下各台服务器能相对饱和的处理请求。同样,负载均衡服务器也需要高可用,以防如果负载均衡服务器挂掉了,后面的应用服务器也紊乱无法工作。

实现高可用的方案:添加冗余。添加n台nginx服务器以避免发生上述单点故障。
具体方案详见下文:keepalive+nginx实现负载均衡高可用,也可参考:http://www.cnblogs.com/youzhibing/p/5061786.html