一、负载均衡介绍
1、负载均衡简单介绍
LB(Load Balance,负载均衡)是一种集群技术,它建立在现有网络结构之上,提供了一种廉价有效透明的方法去扩展现有的网络设备和服务器的带宽,增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性
负载均衡将来自实际运行服务的物理服务器中的“服务”(用户访问站点)进行虚拟化处理,在大量物理服务器之间实现负载均衡,并使这些服务器对外界看起来犹如一个大服务器,为用户提供高可用性、高扩展性、可预测的应用服务。
2、Nginx的分配策略
(1)轮询
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。写法如下:
upstream backserver {
server 192.168.172.128;
server 192.168.172.128;
}
(2)权重weight
weight代表权重,用于指定轮询几率,默认为1,权重越高,被分配的客户端就越多。写法如下:
upstream backserver {
server 192.168.172.128 weight=5;
server 192.168.172.128 weight=10;
}
(3)ip_hash
为了保证已经登陆的用户在二次请求的时候,其登录信息能够继续保留,相当于充当session的角色。通过采用ip_hash指令,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器。写法如下:
upstream backserver {
ip_hash;
server 192.168.172.128:8080;
server 192.168.172.128:8081;
}
(4)fair
按后端服务器的响应时间来分配请求,响应时间短的优先分配。写法如下:
upstream myserver{
server 192.168.172.128:8080;
server 192.168.172.128:8081;
fair;
}
二、负载均衡实例
1、实现效果
在浏览器地址栏输入 http://192.168.172.128/edu/a】edu.html ,则通过负载均衡使得请求平均分配到8080和8081的端口中
2、实现过程
(1)准备两台tomcat服务器,其端口分别为8080和8081。
在端口为8080的tomcat下的webapps中创建edu文件夹。
进入edu文件夹,创建edu.html,其内容如下:
<html>
<title>Edu Page</title>
<body>
<h3>this is edu page, the port is 8080</h3>
</body>
</html>
在端口为8081的tomcat下的webapps中创建edu文件夹。
进入edu文件夹,创建edu.html,其内容如下:
<html>
<title>Edu Page</title>
<body>
<h3>this is edu page, the port is 8081</h3>
</body>
</html>
(2)启动两台tomcat服务器,在浏览器地址栏分别访问,结果如下:
(3)修改nginx.conf文件,并启动nginx。
upstream myserver{
server 192.168.172.128:8080 weight=10;
server 192.169.172.128:8081 weight=100;
}
server {
listen 80;
server_name 192.168.172.128;
location / {
proxy_pass http://myserver;
index index.html index.htm;
}
}
(4)在浏览器地址栏访问,结果如下: