nginx负载均衡

Linux 精帖 收藏 0 101
FREE VIP 2019-11-01 14:02:05

需求:

反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

原理示意图:

undefined


常见的nginx负载均衡有三种方法:

      轮询:将请求按顺序轮流地分配到后端服务器上

      加权轮询:按照分配权重将请求发到服务器上

      IP hash:轮询的基础上,保持一个客户端 多次请求分发到一台服务器上


实验环境:

     三台虚拟机并安装nginx

     192.168.226.128 (web server NO.1)

     192.168.226.129 (web server NO.2)

     192.168.226.130 (负载均衡器)

undefined


配置 负载均衡器的配置文件nginx.conf

undefined


重启均衡器的nginx服务就完成轮询了,刷新请求均衡服务器

undefined


加权轮询:

 upstream load-balancing{

                server 192.168.226.128 weight=1;

                server 192.168.226.129 weight=2;

                }

undefined


IP hash:

upstream load-balancing{

                server 192.168.226.128;

                server 192.168.226.129;

                ip_hash;

                }

undefined


扩展:

其他参数:

down,表示当前的server暂时不参与负载均衡。

backup,预留的备份机器。当其他所有的非backup机器出现故障或者忙的时候,才会请求backup机器,因此这台机器的压力最轻。

max_fails,允许请求失败的次数,默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误。

fail_timeout,在经历了max_fails次失败后,暂停服务的时间。max_fails可以和fail_timeout一起使用。

如果想均衡器本身也作为 web服务器,web服务需要转发到其他端口

undefined


参考文档:https://www.cnblogs.com/knowledgesea/p/5199046.html


这种负载均衡方案的有点是比较简单,缺点是浏览器需要两次请求服务器才能完成一次访问,性能较差;同时,重定向服务器本身的处理能力有可能成为瓶颈,整个集群的伸缩性规模有限;使用HTTP返回码302重定向,有可能使搜索引擎判断为SEO作弊,降低搜索排名。因此实践中很少使用这种负载均衡方案来部署。

企业中DNS负载均衡最常使用

评论
  • 消灭零回复