1.简介

  Tomcat Apache 软件基金会(Apache Software Foundation)的 Jakarta 项目中的一个核心项目,  ApacheSun 和其他一些公司及个人共同开发而成。Tomcat 技术先进、性能稳定,而且免费,因而深受 Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的 Web 应用服务器。

端口8080

2.安装

先安装环境变量jdkapache-tomcatjdk-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

Tomcat安装以及多实例部署_第1张图片

[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 每个运行实例需要使用自己的 conflogstempwebapps、和 work 目录,因此CATALINA_BASE 就指向这些目录。而其他目录主要包括了Tomcat的二进制文件和脚本,CATALINA_HOME 就指向这些目录。如果我们希望再运行另一个 Tomcat 实例,那么我们可以建立一个目录,把 conflogstempwebapps work 拷贝到该目录下,然后让 CATALINA_BASE指向该目录即可。保证每个实例以下三个端口不同即可。 

(1) 修改 Shutdown 端口(默认为 8005 端口)

(2) 修改 http 访问端口(默认为 8080 端口)

(3) 修改 8009ajp)端口。

部署实例:

[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

修改端口:

SHUTDOWN8006 HTTP8081 AJP8010

写一个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这个文件