准备
1.准备两台 tomcat 服务器,一台 8080,一台 8081
2.在两台 tomcat 里面 webapps 目录中,创建名称是 html 文件夹,在 html 文件夹中创建页面 a.html,用于测试,a.html分别填入8080和8081代表两个tomcat服务
修改nginx的配置文件
修改nginx.conf文件添加下面内容
vim /etc/nginx/nginx.conf
upstream myserver{
server 192.168.91.136:8080;
server 192.168.91.136:8081;
}
位置
里面的两个server改为你的tomcat的ip+端口
修改default.conf文件
vim /etc/nginx/conf.d/default.conf
在location位置下添加
proxy_pass http://myserver;
myserver和nginx.conf文件添加的myserver对应
开放端口
开放80、8080、8081三个端口,并重启防火墙生效
firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --permanent --zone=public --add-port=8081/tcp
systemctl reload firewalld
查看开放的端口
firewall-cmd --list-ports
修改tomcat端口
要想同时启动两个tomcat服务,两个tomcat中的这两个端口不能一样,修改下面的server.xml文件里的两个端口
一个是tomcat的连接端口
第二个是tomcat的访问端口
策略配置
nginx的负载均衡有下面4种常用策略
1.轮询(默认)
nginx默认是轮询策略,每个请求轮流分配到不同的后端服务器,如果后端服务器挂掉,则自动被剔除;
参考实例:
upstream myserver{
server 192.168.91.136:8080;
server 192.168.91.136:8081;
}
2.weight权重
根据weight权重,请求会根据权重比例分发给不同后端服务器,weight权重越高,分配的比例越大;
实际分配,根据服务器硬件配置高低,来具体分配weight权重,硬件配置高的,weight就配置高点;
参考实例:
upstream myserver{
server 192.168.91.136:8080 weight=5;
server 192.168.91.136:8081 weight=10;
}
3.ip_hash
ip_hash策略是根据用户客户端的IP的hash值来分配具体服务器,这样每个访问客户端都会固定访问某一个服务器,这样可以解决session丢失问题也就是实现session共享,很多网站都采用这种策略来搞负载均衡,主要考虑到session问题;
参考配置:
upstream myserver{
ip_hash;
server 192.168.91.136:8080;
server 192.168.91.136:8081;
}
4.least_conn最少连接
web请求会被分发到连接数最少的服务器上;
参考实例:
upstream myserver{
least_conn;
server 192.168.91.136:8080;
server 192.168.91.136:8081;
}
测试
开启两个tomcat服务和nginx服务,在浏览器输入nginx的访问地址,
nginx会自动将请求根据负载均衡策略分发到两个tomcat上