在 Tomcat 8 部署多端口项目

转载自:https://www.cnblogs.com/ramantic/p/7517544.html

一般的部署途径

Tomcat 的部署途径很多,一般有如下几种:

  1. 直接将 War 包拷贝到 webapps 目录中,然后启动 Tomcat。
  2. 登陆 Tomcat 管理控制台http://localhost:8080/,输入用户名和密码后便可管理应用并动态发布。

接下来记录一下多端口项目部署的步骤。

多端口项目的部署策略

要想在 Tomcat 上部署不同端口的项目,其实只需要修改 conf 文件夹的 server.xml 即可。在 Server 元素下可以看到 Service 子元素,其中 Connector 的 Port 是默认的 8080。接下来只要创建多个 Service 子元素就行了,修改其中的 port 就可以。

先来看看 8080 端口的 Service 是如何配置的:

<Service name="Catalina">
  <Connector port="8080" protocol="HTTP/1.1"
             connectionTimeout="20000"
             redirectPort="8443" />
  <!-- Define an AJP 1.3 Connector on port 8009 -->
  <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
  <Engine name="Catalina" defaultHost="localhost">

    <!-- Use the LockOutRealm to prevent attempts to guess user passwords
         via a brute-force attack -->
    <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 &quot;%r&quot; %s %b" />
    </Host>
  </Engine>
</Service>

接下来要配置新的端口了,那么要修改哪些地方呢?来列举一下:

  1. Service 标签 的 name 属性
  2. Connector 的 port 属性,也就是端口号
  3. Engine 的 name 属性
  4. Host 的 appBase 属性

OK,继续在 8080 这个 Service 的后面,也就是与之为兄弟节点关系的位置注入以下配置代码:

<Service name="Catalina_QueenWeb">
  <Connector port="8500" protocol="HTTP/1.1"
             connectionTimeout="20000"
             redirectPort="8443" />

  <!-- Define an AJP 1.3 Connector on port 8009 -->
  <!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->

  <Engine name="Catalina_QueenWeb" defaultHost="localhost">

    <!-- Use the LockOutRealm to prevent attempts to guess user passwords
         via a brute-force attack -->
    <Realm className="org.apache.catalina.realm.LockOutRealm">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
    </Realm>
    <Host name="localhost"  appBase="webapp_QueenWeb" unpackWARs="true" autoDeploy="true">
      <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
             prefix="localhost_access_log" suffix=".txt"
             pattern="%h %l %u %t &quot;%r&quot; %s %b" />

    </Host>
  </Engine>
</Service>

修改了哪些内容呢?

  1. Service 标签 的 name 属性值为 Catalina_QueenWeb
  2. Connector 的 port 属性值为 8500(该端口号可以自由拟定)
  3. Engine 的 name 属性值为 Catalina_QueenWeb
  4. Host 的 appBase 属性值为 webapp_QueenWeb

来看一下 Tomcat 内部的文件夹:

Markdown

可以看到,除了默认的 webapps 文件夹,还有一个新创建的 webapp_QueenWeb,只要把打包好的 War 包直接拷贝进去即可:

Markdown

最后,启动 Tomcat 服务(startup.bat)即可,同时会发现,这个 War 包会自解压为一个文件夹!

posted @   larybird  阅读(183)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示