电商项目中Tomcat集群配置带来的主要问题:
1.session登录信息存取问题
2.服务器定时任务并发问题
解决方案:
1.nginx hash ip
优点:不改变现有架构,直接横向扩展
缺点:分配不平均、IP变化无法服务
2.nginx负载均衡 + session server+分布式锁
单机部署多应用
1.在/etc/profile 配置多个Tomcat环境变量
2.第一个tomcat不变,在第二个tomcat的bin目录下打开catalina.sh,给catalina_base 和 Catalina——home重新赋值成系统变量
3.打开${tomcat}/conf/server.xml 修改三个端口号8005、访问8080、AJP/1.3 8009,默认增加1000,注意避免冲突
4.启动
多机部署多应用
如果一个机器部署一个tomcat实例,不需要修改端口号,多个服务器部署要保证网络互通,Nginx可以安装在任意一台机器,也可独立出来。
Nginx负载均衡常用策略
1.轮询(默认)
优点:实现简单 缺点:不考虑服务器处理能力
upstream www.lmall.com{
server www.lmall.com:8080;
server www.lmall.com:9080;
}
2.权重
优点:考虑了每台处理器能力不同
upstream www.lmall.com{
server www.lmall.com:8080 weight = 15;
server www.lmall.com:9080 weight = 10;
}
weight不配置默认为1,多个配置权重的节点比较,比较的是相对值,如15:10,表示的是概率
3.ip hash
优点:同一用户访问同一服务器
缺点:分配不平均
upstream www.lmall.com{
ip_hash;
server www.lmall.com:8080;
server www.lmall.com:9080;
}
4.url hash 第三方
优点:同一服务访问同一服务器
缺点:不平均
upstream www.lmall.com{
server www.lmall.com:8080;
server www.lmall.com:9080;
hash $request_uri;
}
需要第三方插件
5.fair 第三方
按后端服务器响应时间分配,时间短优先
upstream www.lmall.com{
server www.lmall.com:8080;
server www.lmall.com:9080;
fair;
}
**负载均衡参数及扩展点 **
upstream www.lmall.com{
ip_hash;
server www.lmall.com:8080 down; 暂时不参与负载
server www.lmall.com:9080 backup;其他所有非backup机器down或忙时请求backup
}
集群搭建
-
启动tomcat服务
-
替换Tomcat2Logo (方便区分)
${tomcat2}/webapps/ROOT/tomcat.png (如果部署过项目可能找不到,此为新安装的默认路径) -
修改浏览器所在机器 /etc/hosts host 127.0.0.1 www.lmall.com
-
验证host ping www.lmall.com,清除浏览器缓存、重启
-
启动Nginx(默认端口80)
-
vim ${nginx}/conf/nginx.conf 在http节点下增加include vhost/*.conf; 分开域名的配置文件、增加tomcat集群负载均衡的配置
-
创建vhost/www.lmall.com.conf文件
-
${nginx}/sbin/ sudo ./nginx -s reload
www.lmall.com.conf文件配置
autoindex - 如果使用文件夹转发,会自动生成索引
index 访问首页优先级