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