nginx存在一个很有用的功能,那就是负载均衡,它可以将不同的请求按照配置的规则分发到不同的服务,它的本质是利用HTTP的重定向实现负载均衡。
首先我们来看看负载均衡有哪些配置规则:
1.轮询:
轮询方式是Nginx负载默认的方式,顾名思义,所有请求都按照时间顺序分配到不同的服务上。
2.权重:
指定每个服务的权重比例,weight和访问比率成正比,通常用于后端服务机器性能不统一,将性能好的分配权重高来发挥服务器最大性能。
3.iphash:
每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,可以解决session问题。
4.最少连接:
将请求分配到连接数最少的服务上。
5.fair:
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
配置负载均衡实例:
本次测试使用虚拟机通过不同的端口模仿不同的服务实现一个简单的负载均衡测试:
1.配置upstream模块:
也就是配置可供负载均衡使用的服务器列表,upstream模块需要配置在http部分之下,和server同级别。
upstream test {
server localhost:81;
server localhost:82;
}
2.配置分发入口:
server{
listen 80;
location / {
proxy_pass http://test; #指明upstream模块名称
}
}
3.配置81和82两个端口的虚拟主机:
server{
listen 81;
root /usr/local/nginx/html/81;
location /81/ {
index index.html;
}
}
server{
listen 82;
root /usr/local/nginx/html/82;
location /82/ {
index index.html;
}
}
网友评论