负载均衡

Posted Love满天星

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了负载均衡相关的知识,希望对你有一定的参考价值。

 一、什么是负载均衡

     负载平衡也称负载共享,是指对系统中的负载情况进行动态调整,以尽量消除或减少系统中各节点负载不均衡的现象。具体实现方法是将过载节点上的任务转移到其 他轻载节点上,尽可能实现系统各节点的负载平衡,从而提高系统的吞吐量。负载共享有利于统筹管理分布式系统中的各种资源,便于利用共享信息及其服务机制扩 大系统的处理能力。

二、    负载均衡的原理图

 技术分享

用户访问www.a.com通过外网访问,经过负载均衡服务器通过内网分配到每个服务器,来减轻服务器的压力。

三、 负载均衡的配置

nginx.conf文件中在http段下面添加一下代码:

#upstream 可以设定后端服务器,指定的方式可以是 IP 地址与端口、域名、socket。

upstream  www.a.com {

   #设置要分配的服务器的ip

     server  192.168.1.*:80;

     server  192.168.1.**:80;

     server  192.168.1.***:80;

  }

 

server {

     #端口

     listen 80;

     #服务器的名字(浏览器的输入的域名)

     server_name  www.a.com;

     location / {

         proxy_pass        http://www.a.com;    #此域名与upstream  必须一致

         proxy_set_header   Host    $host;

         proxy_set_header   X-Real-IP  $remote_addr;

         proxy_set_header   X-Forwarded-For      $proxy_add_x_forwarded_for;

     }

   }

在其他的nginx服务器中的nginx.conf中添加一下代码(如果不添加,默认访问的根目录)

server{
                listen 80;#端口
                server_name www.a.com; #域名
                index index.html;
                root /data0/htdocs/www; #访问的文件夹
           }

 

四、  负载均衡拓展

  1. 如果负载均衡已经有www.a.com的了,我想在配置www.b.com是可以的,就是把域名改一下就可以了
  2. 如果把负载均衡的服务器的ip配置到upstream 中会出现两种情况

(1). 负载均衡服务器转发到了其它IP上,其它IP服务器正常处理;

(2). 负载均衡服务器转发到了自己IP上,然后又进到负载均衡服务器分配IP那里,假如一直分配到本机,则会造成一个死循环。这个问题怎么的解决呢?

因为80端口已经用来监听负载均衡的处理,那么本服务器上就不能再使用80端口来处理www.a.com的访问请求,需要用一个新的。于是我们把主服务器的nginx.conf加入以下一段代码:

server{
    listen 8080;
    server_name a.com;
    index index.html;
    root /data0/htdocs/www;
}

重启nginx,如果能够正常访问那么在upstream中改一下端口号

upstream www.a.com {
                server  192.168.5.*:80;
                server  192.168.5.**:80;
                server  127.0.0.1:8080;
}

这样第二的问题就解决了。

3.   负载均衡不仅Nginx可以做,Apache也可以,但是Nginx的效率要高于Apache的效率

 

以上是关于负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

ribbon负载均衡详解

四层负载均衡技术

快速理解负载均衡

常见的负载均衡技术

系统架构之负载均衡

负载均衡基本介绍