如何实现服务器的负载均衡
所谓负载均衡就是对多台服务器进行流量分发一种服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。
操作方法
- 01
数据走向 1、客户端访问负载均衡实例IP地址时,相关请求由负载均衡实例对应的nginx集群处理; 2、集群内的每一台节点服务器均分来自前端的请求。根据算法,请求分发。
- 02
算法简介 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; }
- 03
安装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
- 04
配置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掉,能自动剔除。虽然这种方式简便、成本低廉。但缺点是:可靠性低和负载分配不均衡。适用于图片服务器集群和纯静态页面服务器集群。