继之前那篇文章,阿里云centos7.x安装jdk+tomcat,然后在此基础上再次安装也个tomcat,结合nginx转发,实现多个服务器同时运行,tomcat负载均衡
安装另外一个tomcat过程如下
1.为tomcat创建一个专用用户
useradd -s /bin/nologin -g tomcat -d /opt/tomcat2 tomcat2
-g后面的tomcat为之前创建的用户组,/opt/tomcat2为tomcat的安装目录 tomcat2,为用户名
2.将之前下载好的apache-tomcat-8.0.50解压到/opt/tomcat2目录下
cd ~
tar -zxvf apache-tomcat-8.0.50.tar.gz -C /opt/tomcat2 --strip-components=1
我之前安装的tomcat包没有删除,所以接着使用
3.设置权限
cd /opt/tomcat2
chgrp -R tomcat conf
chmod g+rwx conf
chmod g+r conf/*
chown -R tomcat2 logs/ temp/ webapps/ work/
chgrp -R tomcat bin
chgrp -R tomcat lib
chmod g+rwx bin
chmod g+r bin/*
4.为tomcat创建一个System unit文件
vim /etc/systemd/system/tomcat2.service
之前创建的tomcat1.service,现在创建的tomcat2.service
将代码复制进去
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/jre
Environment=CATALINA_PID=/opt/tomcat2/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat2
Environment=CATALINA_BASE=/opt/tomcat2
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat2/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID
User=tomcat2
Group=tomcat
[Install]
WantedBy=multi-user.target
把之前那个文件的tomcat改成tomcat2就行了,输入:wq保存
5.修改配置文件server.xml的端口
vim /opt/tomcat2/conf/server.xml
端口截图如下
(1).shutdown的端口修改,随意指定
(2).HTTP/1.1那个8080端口修改一下
(3).AJP/1.3的端口修改一下
保存即可
6.测试apache tomcat ,并设置开机自启
systemctl start tomcat2.service
systemctl enable tomcat2.service
开启并设置成开机自启
注意:需要在阿里云上打开响应的安全组策略8090(你设置的tomcat2的端口)端口
然后再浏览器上输入在浏览器输入http://your-server-ip:8090测试,
测试截图:(之前在/opt/tomcat2/wrbapps/ROOT目录下的index.jsp文件修改一下,作区分)
7.修改nginx实现tomcat负载均衡
nginx.conf文件修改两处,一是添加服务器集群,server_lb名字自定义,而是在location /{}里面添加代理转发,http://server_lb;即完成配置
8.测试一下文件是否修改成功
nginx -t
9.重新加载nginx文件,无需重启服务器
nginx -s reload
10.测试,输入htpp://ip地址,查看结果
结果就会在你的两个tomcat中来回请求
测试截图:
(1)原tomcat
(2)第二个tomcat(端口不一样,修改过index.jsp文件)
总结:这样,就实现了两个tomcat同时运行,nginx转发请求,如果你其中一台tomcat奔溃或者需要更新项目,也不会影响项目的正常运行。是不是很强大,上诉过程纯手打,可能有一些小错误,希望好心人指出(来自刚入坑java的小白)。