Tomcat多实例及负载均衡
WEB应用程序需要部署在服务器上时Tomcat 软件的部署方式可以分为以下几种:
- 单实例单应用( webapps/a)
- 单实例多应用( webapps/{a,b}
- 多实例单应用-
- 多实例多应用
实例的概念可以先理解为一个Tomcat目录中的一个工作子目录
- 单实例单应用:比较常用的一种方式,只需要把做好的 war包丢在 webapps目录下,执行启动Tomcat的脚本就行了。
- 单实例多应用:有两个不同的 Web 项目的war包,还是只需要丢在 webapps目录下,执行启动Tomcat的脚本,访问不同项目会加载不同的WEB虚拟目录。这种方式在生产环境中要慎用,因为重启或挂掉Tomcat程序后会影响另外一个应用的访问。
- 多实例单应用:多个Tomcat实例部署同一个项目,端口号不同,可以利用 Nginx做负载均衡。
- 多实例多应用:多个Tomcat实例部署多个不同的项目。这种模式在服务器资源有限,或者对服务器资源要求并不是很高的情况下,可以实现多个不同项目部署在同一台服务器上的需求,来实现资源使用的最大化。
《1》:/usr/local/tomcat/bin/shutdown.sh 关闭服务
《2》: rm -rf /usr/local/tomcat/ 删除
《3》:tar xf apache-tomcat-8.5.40.tar.gz 解压
《4》:mkdir -p /usr/local/tomcat_instance/tomcat1 创建目录
《5》:mv apache-tomcat-8.5.40 /usr/local/ 移动目录
《6》:cp -R /usr/local/apache-tomcat-8.5.40/conf/ /usr/local/tomcat_instance/tomcat1/ 复制
《7》:mkdir /usr/local/tomcat_instance/tomcat1/bin 创建目录
《8》:touch /usr/local/tomcat_instance/tomcat1/bin/startup.sh 创建文件
《9》:touch /usr/local/tomcat_instance/tomcat1/bin/shutdown.sh 创建文件
《10》:cd /usr/local/tomcat_instance/tomcat1/bin/ 切换目录
《11》:chmod +x * 给执行的权限
《12》:vim startup.sh 编辑脚本
《13》:内容如下:
#!/bin/bash
export CATALINA_HOME="/usr/local/apache-tomcat-8.5.40"
export CATALINA_BASE="/usr/local/tomcat_instance/tomcat1"
export CATALINA_TMPDIR="$CATALINA_BASE/temp"
export CATALINA_PID="$CATALINA_BASE/bin/tomcat.pid"
export JAVA_OPTS="-server -Xms1024m -Xmx1024m -Djava.awt.headless=true -Dtomcat.name=tomcat1"
#创建logs目录
if [ ! -d "$CATALINA_BASE/logs" ]; then
mkdir $CATALINA_BASE/logs
fi
#创建temp目录
if [ ! -d "$CATALINA_BASE/temp" ]; then
mkdir $CATALINA_BASE/temp
fi
# 调用tomcat启动脚本
bash $CATALINA_HOME/bin/startup.sh "$@"
《14》:vim shutdown.sh 编辑脚本
《15》:脚本内容:
#!/bin/bash
export CATALINA_HOME="/usr/local/apache-tomcat-8.5.40"
export CATALINA_BASE="/usr/local/tomcat_instance/tomcat1"
export CATALINA_TMPDIR="$CATALINA_BASE/temp"
export CATALINA_PID="$CATALINA_BASE/bin/tomcat.pid"
bash $CATALINA_HOME/bin/shutdown.sh "$@"
《16》: cd ../ 切换上一级
《17》:mkdir webapps/ROOT -p 创建目录和文件
《18》:vim webapps/ROOT/index.jsp 编辑测试页
《19》:文件内容如下:
<html>
<title>Tomcat-1</title>
<body>
Hello This is Tomcat-1
</body>
</html>
《20》:./bin/startup.sh 启动脚本
《21》:netstat -lnpt |grep java 查看端口
《22》:访问
《23》:cd .. 切换上一级
《24》:cp -r tomcat1/ tomcat2 复制
《25》:cd tomcat2 切换
《26》:cd bin/ 切换路径
《27》:rm -rf tomcat.pid 删除pid,因为这是第一个实例生成的
《28》:vim shutdown.sh 编辑文件
《29》:修改内容中的tomcat1改为tomcat2
《30》:vim startup.sh 编辑文件
《32》:修改内容:把tomcat1改为tomcat2
《33》:vim conf/server.xml 编辑主配置文件
《34》:修改端口:8080 改为8070,8009改为:8008,8005改为8004.
《35》:vim webapps/ROOT/index.jsp 编辑文件
《36》:修改文件内容:把tomcat1改为tomcat2
《37》: ./bin/startup.sh 启动
《38》:访问
《39》根据上面的步骤在做一个tomcat3.
《40》:netstat -lnpt |grep java 查看端口
《41》:在第一台100.10 nginx的主机上
《42》:vim /usr/local/nginx/conf/nginx.conf 编辑主配置文件
《43》:修改
《44》:nginx -s reload 重启
《45》:访问