Tomcat一机多实例运行

79 阅读2分钟

POC环境要在一台服务器上部署多个tomcat,第一个tomcat可以默认安装,不需要任何修改,第二个及其他tomcat要运行就要修改端口了

修改tomcat的三个端口

为了运行多个tomcat,添加一个tomcat在默认端口的基础上加100,第二个tomcat在默认端口上加200,依次类推。一台服务器上端口不能重复,否则会报错。

8005

shutdown端口,默认8005,主要负责启动关闭。

<Server port="8105" shutdown="SHUTDOWN">

8009

ajp端口,默认8009,主要负责通过ajp均衡 (常用于apache和tomcat整合)

<Connector port="8109" protocol="AJP/1.3" redirectPort="8443" />

8080

http端口,默认8080,主要通过web页面直接访问(nginx+tomcata整合),编码UTF-8

<Connector port="8180" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />

配置Host和Context

Host

对一个Tomcat,可以配置多台虚拟主机,简单来说,就是让一台服务器可以对应多个主机名,这在Tomcat中称为Host,要求每个Host的Name必须唯一。

编辑配置文件

vi $CATALINA_HOME/conf/server.xml

添加如下内容

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
</Host>

说明

  • appBase指定了该虚拟主机上应用的部署位置,一般写相对于CATALINA_HOME的相对路径即可

Context

在一个Host上,可以部署多个应用。每个应用都有不同的Context Path,Context Path会出现在用户访问该应用的URL中,如下所示:

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
	<Context docBase="ROOT" path="/admin" reloadable="true"></Context>
	<Context docBase="xxx-web" path="" reloadable="true"></Context>
	<Context docBase="/root/app/www_xxx" path="/xxx" reloadable="false" />
</Host>

说明

  • path须为空 或以/开头且不以/结束
  • 如果Tomcat绑定的端口为8080,则访问http://localhost:8080即可访问项目xxx-web
  • 访问http://localhost:8080/admin即可访问项目ROOT
  • 当未给Host配置Context时,Tomcat默认把ROOT项目作为Root Context,即访问http://localhost:8080就访问ROOT项目
  • 当给Host配置Context时,如果path=""path="/",则相当于将此Context指定为Root Context