zoukankan      html  css  js  c++  java
  • 在 Tomcat 8 部署多端口项目

    Markdown

    一般的部署途径

    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 包会自解压为一个文件夹!

  • 相关阅读:
    数据结构-树与二叉树-思维导图
    The last packet successfully received from the server was 2,272 milliseconds ago. The last packet sent successfully to the server was 2,258 milliseconds ago.
    idea连接mysql报错Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property
    redis学习笔记
    AJAX校验注册用户名是否存在
    AJAX学习笔记
    JSON学习笔记
    JQuery基础知识学习笔记
    Filter、Listener学习笔记
    三层架构学习笔记
  • 原文地址:https://www.cnblogs.com/ramantic/p/7517544.html
Copyright © 2011-2022 走看看