nginx实现负载均衡
1、实现效果
在浏览器地址栏中输入地址 :192.168.2.180/edu/a.html,使请求平均到8080 和 8081端口中
2、准备工作
1)准备2台tomcat服务器:8080 8081
2)在2台tomcat的webapps目录中,创建名称是edu的文件加,在edu文件夹中创建页面 a.html,用于测试。 启动两台 tomcat,准备成功,示例如下(乱码不管了,没什么影响)
3)对nginx.conf 进行配置
#负载均衡
upstream myserver{
server 192.168.2.180:8080;
server 192.168.2.180:8081;
}
#监听 192.168.2.180:80,并对请求进行分流
server {
listen 80;
server_name 192.168.2.180;
location / {
proxy_pass http://myserver;
}
}
4) 效果如下
刷新后
nginx 负载均衡的策略:
1、轮询(默认)
每个请求按时间逐一分配到不同的后端服务器,如果后端服务器down了,则能自动剔除
2、weight
weight代表权重,默认为1,权重越高,被分配的客户端就越多
#负载均衡
upstream myserver{
server 192.168.2.180:8080 weight=1;
server 192.168.2.180:8081 weight=2;
}
3、ip_hash
每个请求按照ip的hash结果分配,那么只要用户的ip不变,访问的服务器就不变,可以解决
session的问题
upstream myserver{
ip_hash;
server 192.168.2.180:8080 weight=1;
server 192.168.2.180:8081 weight=2;
}
4、fair
根据后端服务器的响应时间来分配,响应时间短的优先分配
upstream myserver{
server 192.168.2.180:8080 weight=1;
server 192.168.2.180:8081 weight=2;
fair;
}