1.简介
Tomcat 是 Apache 软件基金会(Apache Software Foundation)的 Jakarta 项目中的一个核心项目, 由 Apache、Sun 和其他一些公司及个人共同开发而成。Tomcat 技术先进、性能稳定,而且免费,因而深受 Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的 Web 应用服务器。
端口8080
2.安装
先安装环境变量jdk和apache-tomcat(jdk-8u144-linux-x64.rpm 、apache-tomcat-8.5.20.tar.gz Tomcat解压后就可以使用)
[root@localhosttools]# rpm -ivh jdk-8u144-linux-x64.rpm
[root@localhosttools]# tar xf apache-tomcat-8.5.20.tar.gz -C /usr/local
[root@localhosttools]# cd /usr/local/
[root@localhostlocal]# ln -sv apache-tomcat-8.5.20/ tomcat //软连接
为了方便使用我在此写了一个系统脚本(tomcat.sh)
[root@localhostlocal]# vim /etc/init.d/tomcat
添加执行权限并启动:
[root@localhostlocal]# chmod +x /etc/init.d/tomcat
[root@localhostlocal]# chkconfig --add tomcat
[root@localhostlocal]# service tomcat start
[root@localhost~]# cd /usr/local/tomcat/webapps/ //Tomcat自动部署路径
3.Tomcat多实例部署
我们常有在 JAVA Web 应用部署或依赖 Tomcat 应用中遇到单机多实例的需求,解决方案一般有:
1、复制 Tomcat 到不同目录,更改 Server.xml 等配置文件;
2、部署不同应用实例到 webapps 目录下或直接将多项目部署到同一 Tomcat 实例中。
以此解决多项目部署问题,这种解决思路有以下几个问题:
1、复制多 Tomcat 难于维护。Tomcat 版本升级或更改配置将变得让维护人员很头疼;
2、复制多 Tomcat 资源消耗大。
3、对于多项目同时部署到 Tomcat webapps 目录下的解决,项目与项目间依赖度太高,不方便统一调试或日志跟踪于定位。
4、如果项目中存在过于多的单例,多项目同时有依赖且部署在同一 webapps 目录下,则可能导致项目无法正常运行或频繁出 BUG;
5、项目复制在同一 webapps 下,对于热加载和热部署也造成了很大的困难。虽然 Tomcat 管理可以实现热部署,但是对于实际线上项目,生成 war 包进行热部署,Tomcat 自带的热部署功能便显得不尽人意。
简单的说,CATALINA_HOME 是 Tomcat的安装目录,CATALINA_BASE 是Tomcat 的工作目录。如果我们想要运行 Tomcat 的多个实例,但是不想安装多个 Tomcat 软件副本。那么我们可以配置多个工作目录,每个运行实例独占一个工作目录,但是共享同一个安装目录。Tomcat 每个运行实例需要使用自己的 conf、logs、temp、webapps、和 work 目录,因此CATALINA_BASE 就指向这些目录。而其他目录主要包括了Tomcat的二进制文件和脚本,CATALINA_HOME 就指向这些目录。如果我们希望再运行另一个 Tomcat 实例,那么我们可以建立一个目录,把 conf、logs、temp、webapps 和 work 拷贝到该目录下,然后让 CATALINA_BASE指向该目录即可。保证每个实例以下三个端口不同即可。
(1) 修改 Shutdown 端口(默认为 8005 端口)。
(2) 修改 http 访问端口(默认为 8080 端口)。
(3) 修改 8009(ajp)端口。
部署实例:
[root@localhost~]# service tomcat stop //先停止Tomcat
[root@localhost~]# cd /usr/local/tomcat/
[root@localhosttomcat]# mkdir tomcat{1,2}
[root@localhosttomcat]# cp -a conf/ logs/ temp/ webapps/ work/ tomcat1
[root@localhosttomcat]# cp -a conf/ logs/ temp/ webapps/ work/ tomcat2
修改子目录 conf/server.xml;
tomcat1 保持默认端口
tomcat2 修改
[root@localhosttomcat]# vim tomcat2/conf/server.xml
修改端口:
SHUTDOWN:8006 HTTP:8081 AJP:8010
写一个shell启动脚本:(tomcat.sh)
[root@localhosttomcat]# mv /etc/init.d/tomcat /etc/init.d/tomcat1
将export CATALINA_BASE=$CATALINA_HOME改成export CATALINA_BASE=$CATALINA_HOME/tomcat1
[root@localhosttomcat]# cp -p /etc/init.d/tomcat1 /etc/init.d/tomcat2
将export CATALINA_BASE=$CATALINA_HOME改成export CATALINA_BASE=$CATALINA_HOME/tomcat2
[root@localhosttomcat]# chkconfig --add tomcat1
[root@localhosttomcat]# chkconfig --add tomcat2
启动:
[root@localhosttomcat]# service tomcat1 start
[root@localhosttomcat]# service tomcat2 start
日志文件:
[root@localhosttomcat]# cd /usr/local/tomcat/tomcat2/logs/
catalina.out这个文件