~~删除线格式~~
2.修改配置文件
第一台8005
第二台8006
第三台8007
此位置第一台8091,第二台8092,第三台8093
此位置第一台8009,第二台8010,第三台8011
将Javaweb项目Run as-》Maven install
将拷贝到三台tomcat服务器webapps 中,将ROOT文件夹删掉,把war文件重命名为ROOT.war
重启8093服务器
目测需要保证三个startup.bat都开启的状态,才能保证三个端口号对应项目可访问
特点:根据配置玩家顺序,一次访问不同的tomcat服务器
修改nginx.conf
#配置tomcat负载均衡,1-轮询策略
upstream jt {
server localhost:8091;
server localhost:8092;
server localhost:8093;
}
#后台管理系统
server {
listen 80;
server_name manage.jt.com;
location / {
proxy_pass http://jt;
}
}
2.重启Nginx
3.改造三台服务器的主页呈现,结果
四、权重:
特点:根据服务器处理能力不同,动态划分请求,处理能力越高,所处理请求越多。
#配置tomcat负载均衡,1-轮询策略 2-权重
upstream jt {
server localhost:8091 weight=6;
server localhost:8092 weight=3;
server localhost:8093 weight=1;
}
实际问题 :采用集群的方式不能实现用户session共享,因为不同的tomcat之间是物理隔离,如何解决?
专业术语:
session黏着:指session共享
解决方案:
A:采用sessionid进行url重写
优点:可以实现Session共享,cookie禁用【拼接id】
缺点:效率太低
B:使用Nginx中的IP_HASH技术,能够根据用户的IP动态的绑定一台服务器,变相实现Session共享,Ip_hash优先级最高,配置后轮询和权重不生效【一般也不使用】
缺点:1.如果服务器宕机,用户访问受限
2.使用ip_hash导致负载不均
3.安全性不好
C:实现单点登录(SSO)用户登陆一次 后期使用信用登录
1.手动下线
可在upstream中给服务器 配置down;
server localhost:8091 weight=6 down;
2.备用机机制 backup
server localhost:8093 weight=1 backup;
3.设定超时时间
proxy_connect_timeout 3;
proxy_read_timeout 3;
proxy_send_timeout 3;
4.健康检测
说明:在规定周期内,用户会通过健康检测,检查当前服务器是否可用,如果发现服务器宕机,则咋当前周期内不会再将请求发送到故障机。直到下一个周期后再继续提供服务。
#ip_hash;
server localhost:8090 max_fails=1 fail_timeout=60s;
server localhost:8091 max_fails=1 fail_timeout=60s;
server localhost:8092 max_fails=1 fail_timeout=60s;