一、实现效果
浏览器地址栏输入地址 http://192.168.137.129/edu/a.html,负载均衡效果,将请求平均分配到8080和8081两台服务器上。
二、准备工作
1. 准备两台tomcat服务器,一台8080,一台8081 (具体操作如下两个链接)
Nginx配置实例-反向代理案例一https://liush.blog.csdn.net/article/details/129448689
Nginx配置实例-反向代理案例二https://liush.blog.csdn.net/article/details/129450909
2. 在两台tomcat里面webapps目录中,创建名称是edu文件夹,在edu文件夹中创建页面a.html(让a.html内容不一样,查看效果),用于测试。
3. 分别启动 tomcat 访问资源页面 a.html
三、配置nginx.conf文件
1. 修改配置文件
{
#上游服务器 服务器集合
upstream serverList{
server 192.168.230.130:8080;
server 192.168.230.130:8081;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location /edu/ {
#表示访问端口号为8080tomcat的edu项目
#proxy_pass http://192.168.230.130:8080;
proxy_pass http://serverList;
}
......
}
2. 启动测试
默认遵循 轮询机制:刷新切换访问
四、nginx分配服务器策略
1. 轮询(默认)
第三部分展示的就是默认轮询机制
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
2. weight
weight 代表权,重默认为1,权重越高被分配的客户端越多。
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
修改配置文件 nginx.conf 如下所示
#上游服务器 服务器集合
upstream serverList{
server 192.168.230.130:8080 weight=1;
server 192.168.230.130:8081 weight=2;
}
重新加载配置文件
[root@localhost sbin]# ./nginx -s reload
启动测试结果:8081执行两次后,8080执行一次
3. ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 例如
#上游服务器 服务器集合
upstream serverList{
ip_hash;
server 192.168.230.130:8080;
server 192.168.230.130:8081;
}
4. fair
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
#上游服务器 服务器集合
upstream serverList{
server 192.168.230.130:8080;
server 192.168.230.130:8081;
fair;
}
5. 其他参数
upstream serverList{
server 192.168.230.130:8080 down;
server 192.168.230.130:8081 weight=2;server 192.168.230.130:8082 backup;
}
① down:表示单前的server暂时不参与负载② weight :默认为1.weight越大,负载的权重就越大。
③ Backup:其它所有的非backup机器down或者忙的时候,才会去请求backup机器;所以这台机器压力会最轻。