Tomcat部署
Tomcat多实例配置
-
下载一个免安装版的
tomcat
。 -
在任意位置创建一个文件夹作为实例【本文以instance为名】。
-
在该文件夹内加入tomcat的
conf
文件夹和bin
目录下的startup.bat
和shutdown.bat
。 -
编辑
startup.bat
和shutdown.bat
,在顶部加入"SET CATALINA_BASE=%CD%"
-
修改此conf文件夹中server.xml的端口号(Server port,Connector port ,AJP port),建议每一个新实例在端口上加
100
以方便管理。【8080改8180】 -
最后在实例文件夹中加入webapps文件夹并放入项目或修改配置文件指向其他目录的项目,然后启动脚本
startup.bat
启动该实例。
原理:
下载的tomcat默认情况下,主目录和实例目录在同一个目录下。
主目录是tomcat运行目录,分别是tomcat的启动目录bin
目录和主体程序目录lib
目录。
实例目录是tomcat存放实例以及相关配置、日志的目录。其中conf
配置目录需要手动添加并修改相关配置,logs、work、temp会在项目启动后自动生成。
运行startup.bat后,脚本文件会根据里面的配置自动找到tomcat的主目录并运行程序,然后再根据startup.bat
和shutdown.sh
中的CATALINA_BASE
指向当前实例。
<br />
Tomcat多应用配置
-
下载一个免安装版的
tomcat
。 -
解压到任意位置。
-
配置
server.xml
的端口号(Server port,Connector port ,AJP port)。 -
启动
startup.bat
说明:
tomcat免安装版对系统没有更改。端口不冲突的情况下,每次运行都产生一个新的服务。所以每个进程互不影响。另外也可以参考上面多实例配置,一起配置。
<br />
Tomcat多项目配置
- 直接将项目放在webapps下,当tomcat启动时会默认自动加载这个目录。也可以改变这个目录,以下为默认
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
- 在
server.xml
中的<Host>
节点中添加<Context>
节点。内容如下
<Context path="/hello" reloadable="true" docBase="D:\...\WebRoot" debug="0" privileged="true"></Context>
【path】:虚拟路径;
【docBase】:项目物理路径;
【workDir】:应用工作目录,存放编译后的文件,真正用来执行的文件夹;
【debug】:设置debug level,0表示提供最少的信息;
【privileged】:设置为true时才允许web应用使用容器内的servlet;
【reloadable】:热部署,为true的时候会检测WEB-INF文件夹下lib和classes目录的变化,不重启的情况下自动重载web应用;
【antiResourceLocking和antiJARLocking】 热部署是需要配置的参数,默认false避免更新了某个webapp,有时候Tomcat并不能把旧的webapp完全删除,通常会留下WEB-INF/lib下的某个jar包,必须关闭Tomcat才能删除,这就导致自动部署失败。设置为true,Tomcat在运行对应的webapp时,会把相应的源文件和jar文件复制到一个临时目录里。
- 在
/conf/catalina/localhost
目录下创建一个xml
文件,文件名就为该虚拟路径。内容可以如下
<Context docBase="E:\workspace\hello\WebRoot" debug="0" privileged="true"></Context>
注意:
删除一个通过方式而或者三部署的应用的时候一定要删除server.xml
下的context节点和localhost
下的xml文件。