Tomcat 配置多个端口号或多个应用
- Tomcat
- 2023-07-10
- 31 热度
- 0 评论
1、一个应用多个端口号
即一个service配置多个端口,项目可以通过多个端口访问。
修改tomcat-home\conf下的server.xml,在Service下配置多个<Connector>即可。
<Service name="Catalina">
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" />
<Connector port="8081" protocol="AJP/1.3" redirectPort="8443" />
<Connector
port="8082"
protocol="HTTP/1.1"
maxThreads="150"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
redirectPort="8443"
acceptCount="100"
debug="0"
connectionTimeout="20000"
URIEncoding="utf-8"
disableUploadTimeout="true"
/>
<Engine defaultHost="localhost" name="Catalina">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" />
<Host
appBase="webapps"
autoDeploy="true"
name="localhost"
unpackWARs="true"
xmlNamespaceAware="false"
xmlValidation="false"
>
</Host>
</Engine>
</Service>
在这个应用里,可以用8080端口号访问服务,也可以用8081、8082端口号来访问服务; 服务放置的路径由host决定,上例中服务放在webapps下。
即,以下两种方式访问同一个项目:
http://localhost:8081/项目名称
http://localhost:8082/项目名称
2、多个应用一个端口号。
即host配置多个Context,每个Context可以配置一个应用。
修改tomcat-home\conf下的server.xml,添加多个Context即可
<Service name="Catalina">
<Executor
name="tomcatThreadPool"
namePrefix="catalina-exec-"
maxThreads="150"
minSpareThreads="4"
/>
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" />
</Realm>
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve
className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost_access_log"
suffix=".txt"
pattern='%h %l %u %t "%r" %s %b'
/>
<!-- docBase: 指定Web应用的文件路径,可以是绝对路径,也可以给定相对路径 -->
<!-- path: 指定访问该Web应用的URL入口 -->
<!-- reloadable:若这个属性为true,tomcat服务器在运行状态下会监视WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到class文件被更新,服务器会自动重新加载Web应用。 -->
<Context path="/" docBase="/www/server/tomcat/webapps/admin2" />
<Context path="/admin" docBase="/www/server/tomcat/webapps/ROOT/admin" />
</Host>
</Engine>
</Service>
项目1:http://localhost:8080
项目2:http://localhost:8081/项目名称
3、多个应用多个端口号。
即配置多个service,每个service可以配置多个端口。
修改tomcat-home\conf下的server.xml,添加多个Service即可。
注意Service name、Engine name、appBase,port别忘了修改,以免重复
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" />
</Realm>
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve
className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost_access_log"
suffix=".txt"
pattern='%h %l %u %t "%r" %s %b'
/>
<Context path="/" docBase="/www/server/tomcat/webapps/ROOT/admin" />
</Host>
</Engine>
</Service>
<Service name="Catalina2">
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" />
</Realm>
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve
className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost_access_log"
suffix=".txt"
pattern='%h %l %u %t "%r" %s %b'
/>
<Context path="/" docBase="/www/server/tomcat/webapps/ROOT/admin2" />
</Host>
</Engine>
</Service>
以上两个service,发布的路径不同,项目分别发布在/webapps/ROOT/admin
、/webapps/ROOT/admin2
下,
访问不同的项目的方法:
http://localhost:8080/项目名称1
http://localhost:8081/项目名称2