一、概述 

随着互联网信息的爆炸性增长,负载均衡(load balance)已经不再是一个很陌生的话题,顾名思义,负载均衡即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快,给用户很好的体验。快速增长的访问量和数据流量催生了各式各样的负载均衡产品,很多专业的负载均衡硬件提供了很好的功能,但却价格不菲,这使得负载均衡软件大受欢迎,nginx 就是其中的一个,在 linux 下有 Nginx、LVS、Haproxy 等等服务可以提供负载均衡服务,而且 Nginx 提供了不同的分配方式(策略),可以按照实际情况去进行配置。这里做一个简单的介绍:

1、轮询(默认)

Nginx默认情况下使用的是这种方法。轮询法,就是将用户的请求按照时间顺序轮流分配给服务器,就像是挨个数数,轮流分配;如果后端服务器 down 掉,能自动剔除。这种算法比较简单,他具有绝对均衡的优点,但是也正是因为绝对均衡它必须付出很大的代价,例如它无法保证分配任务的合理性,无法根据服务器承受能力来分配任务。

2、weight

weight代表权重值,默认为1,权重越高被分配的客户端越多。指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。例如:

upstream server_pool {
server 192.168.5.21 weight=10;
server 192.168.5.21 weight=10;
}

3、ip_hash

每个请求按照访问IP的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。例如:

upstream server_pool{
ip_hash;
server 192.168.5.21:80;
server 192.168.5.22:80;
}

4、fair(第三方)

按照后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream server_pool {
server 192.168.5.21:80;
server 192.168.5.22:80;
fair
}

二、配置实例

实验效果:当在浏览器地址栏输入地址http://ip地址/edu/a.html后,实现负载均衡效果,平均8080和8081端口中去。这里准备工作就不做过多展示了,这里前面有详细步骤:

https://blog.csdn.net/weixin_43997530/article/details/115414101

准备工作:

  • 首先准备两台服务器,这里我们使用Tomcat服务器。一台端口号为8080,一台端口号为8081。
  • 两台Tomcat里面webapps目录中,创建的是edu文件夹,在edu文件夹中创建页面a.html,用于测试。

在Nginx配置文件中进行配置:(位置在/usr/local/nginx/conf下的nginx.conf):

    upstream server_pool {                         //地址池名字可以随意起
        server 192.168.73.128:8080;
        server 192.168.73.128:8081;
}
    server {
        listen       80;
        server_name  192.168.73.128;
   location / {
            proxy_pass   http://server_pool;      //这里写上面的地址池名字
            root   html;
            index  index.html index.htm;
}
前面的序号是行号,这里我们在原有的配置文件上进行了修改。

到这里负载均衡就配置完成,接下来进行试验验证 ,这里验证的时候如果是谷歌浏览器需要使用回车键进行刷新否则看不到负载均衡的效果这里我们每刷新一下可以看出内容就变化一次。这就实现了基本的负载均衡。

 

 posted on 2021-04-09 18:37  嚴∞帅  阅读(74)  评论(0编辑  收藏  举报