如何实现服务器的负载均衡

2025-11-22 20:34:20

1、数据走向

1、客户端访问负载均衡实例IP地址时,相关请求由负载均衡实例对应的nginx集群处理;

2、集群内的每一台节点服务器均分来自前端的请求。根据算法,请求分发。

2、算法简介

1、轮询(默认)   

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 该算法较为常用。

 upstream backend {

        server 192.168.0.14;

        server 192.168.0.15;

    }

2、weight 权重,指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

 upstream backend { 

        server 192.168.0.14 weight=10;

         server 192.168.0.15 weight=10;

 }

3、ip_hash 该算法会根据请求的客户端IP地址来决定当前请求应该交给谁。Nginx会确保来自同一客户端的请求都分发到同一服务器。

 upstream backend {   

        ip_hash;

        server 192.168.0.14:88;

        server 192.168.0.15:80;

  }

4、fair(第三方)   按后端服务器的响应时间来分配请求,响应时间短的优先分配。 

  upstream backend {

       server server1.xxx.com;

       server server2.xxx.com;

       fair;    }   url

5、url_hash(第三方)  按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。  

upstream backend {

    server squid1:3128;

    server squid2:3128;

     hash $request_uri;

     hash_method crc32;

}

如何实现服务器的负载均衡

3、安装nginx

1、环境

yum -y install gccpcre-devel zlib-devel openssl-deve

2、编译nginx

tar zxvf nginx-*.tar.gz

cd nginx-*

./configure --with-http_stub_status_module

make&&makeinstal./configure

make 

make install

或者直接

 yum install nginx

4、配置nginx

1. 在http节点下,添加upstream节点。

 upstream backend {

        server 192.168.0.14;

        server 192.168.0.15;

    }

 2.  将server节点下的location节点中的proxy_pass配置为:http:// + upstream名称,即“http://backend”.

location / {

             root  html;

             index  index.html index.htm;

             proxy_pass http://backend; 

}

 3.  现在负载均衡初步完成了。upstream按照轮询方式进行负载,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。虽然这种方式简便、成本低廉。但缺点是:可靠性低和负载分配不均衡。适用于图片服务器集群和纯静态页面服务器集群。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢