一、 Tomcat集群可以带来什么
1.提高服务的性能,并发能力,以及高可用性
2.提供项目架构的横向扩展能力
- 高可用性:Nginx下面挂了多台Tomcat,当Tomcat1挂掉的时候,我们可以把这个从Nginx负载均衡Tomcat集群当中摘掉,那么Nginx会打到可用的Tomcat服务器上,并不影响服务,Tomcat集群就能带来一定的高可用性
- 横向扩展能力:假设有一台服务器,通过不断地升级它的内存,硬盘这种叫纵向,tomcat集群就可以做横向扩展,只要增加节点就可以了,可根据历史情况增加节点
二 、原理
通过Nginx负载均衡进行请求转发,这里采用的是权重策略。
当然还有其它策略如轮询(默认)、ip_hash、url hash(第三方)等
三 、使用Tomcat集群后带来的新的问题
session登录信息存储及读取的问题、服务器定时任务并发的问题等,这些都是要考虑解决的问题,这里就不过多阐述。
四、搭建环境
这里是单机部署多应用,多机部署多应用很简单这里就不阐述了
环境系统:CentOS6.8
Tomcat 7.0
Nginx-1.10.2
1:修改域名和网址之间的映射
sudo vim /etc/hosts(根据你的用户权限是否使用sudo)
配置完成后可以ping 一下,看配置是否生效
2、在同一台服务器中安装两个Tomcat(安装过程省略。。网上的教程有很多),并且/etc/profile中添加Tomcat环境变量。
下面是已经安装好的tomcat
sudo vim /etc/profile 添加环境变量
3、变更Tomcat中的端口号
其中tomcat1保持不变,保持安装后的样子就行,只修改tomcat2中的会引起冲突的端口号
打开tomcat2下conf目录中的server.xml,更改三个冲突端口
第一个:修改Server port节点,本次是在所有原端口号上加1000,可以根据实际情况修改多少随便;
第二个:修改Connector port,同样加1000;
第三个: 修改另一个 Connector port ,后面的重定向端口不用动
4、 分别进入两个Tomcat下的bin目录,启动Tomcat,执行./startup.sh 启动tomcat
其中端口9080下猫的图片是被替换了的,替换的路径是tomcat2/webapps/ROOT下的tomcat.png,为的是方便验证tomcat2是否启动成功。
四 、 nginx负载均衡配置(nginx安装省略。。。)
在nginx主配置nginx.conf中添加如下语句,为的是可以方便维护,不用将配置信息挤在一个conf下
在conf目录下创建vhost文件夹,再在vhost下负载均衡配置文件,且文件要以conf结尾
修改sunnyday.com.conf
upstream 127.0.0.1 {
server www.sunnyday.com:8080 weight=1;
server www.sunnyday.com:9080 weight=1;
}
server {
listen 80;
autoindex on;
server_name sunnday.com www.sunnyday.com;
access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.jsp index.php;
location / {
proxy_pass http://127.0.0.1;
}
}
nginx配置完成后再重启nginx ,在nginx的sbin目录下执行./nginx -s reload,清除浏览器缓存,输入配置的域名
可以看到浏览器一会跳到8080端口,一会又跳到9080端口,nginx+tomcat集群配置完成