Запуск нескольких экземпляров Tomcat на одном порте

Мне нужно запустить несколько экземпляров tomcat6 под разными именами каталогов на одном и том же порте. Я установлю tomcat6 дважды для двух разных проектов. Но как настроить оба экземпляра для работы на одном порте?


person franklin joseph    schedule 29.09.2014    source источник


Ответы (6)


Вы можете реализовать это с помощью веб-сервера apache, который направляет запросы на основе приложения, используя mod_jk или mod_proxy. (и получите объяснение по обоим расширениям)

Чтобы выбрать, какое расширение apache использовать: apache to tomcat: mod_jk vs mod_proxy < / а>

person Kurt Du Bois    schedule 29.09.2014
comment
Это путь! - person Michael-O; 29.09.2014

Да, ты можешь. В server.xml замените:

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
    <!-- SingleSignOn valve, share authentication between web applications
         Documentation at: /docs/config/valve.html -->
    <!--
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    -->
    <!-- Access log processes all example.
         Documentation at: /docs/config/valve.html
         Note: The pattern used is equivalent to using pattern="common" -->
    <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>

By

<Host name="app1.com"  appBase="webappsApp1" unpackWARs="true" autoDeploy="true">

    <!-- SingleSignOn valve, share authentication between web applications
         Documentation at: /docs/config/valve.html -->
    <!--
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    -->

    <!-- Access log processes all example.
         Documentation at: /docs/config/valve.html
         Note: The pattern used is equivalent to using pattern="common" -->
    <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>

<Host name="app2.com"  appBase="webappsApp2" unpackWARs="true" autoDeploy="true">

    <!-- SingleSignOn valve, share authentication between web applications
         Documentation at: /docs/config/valve.html -->
    <!--
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    -->

    <!-- Access log processes all example.
         Documentation at: /docs/config/valve.html
         Note: The pattern used is equivalent to using pattern="common" -->
    <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>

В каталог webappsApp1 вы помещаете войну App1, то же самое для каталога webappsApp2 и App2.

В днс зоне App1 и App2 поставьте публичный ip сервера.

person victorpacheco3107    schedule 12.02.2015

Невозможно запустить две службы для обслуживания через один порт. Вы можете запустить только один кот на номер порта.

person Karthikeyan Vaithilingam    schedule 29.09.2014

Только один процесс может одновременно прослушивать определенный порт. Так что то, что вы хотите сделать, напрямую невозможно. Возможно, вам повезет с пересылкой запросов на другой экземпляр или использованием другого сервера в качестве внешнего интерфейса (например, Apache).

person Henry    schedule 29.09.2014

Да, вы можете запускать несколько экземпляров tomcat (или любого другого объекта) на одном порту. Для этого вам нужно иметь несколько реальных IP-адресов, привязанных к VIP, а затем каждый RIP может использовать свой собственный набор портов для прослушивания.

Таким образом, каждый кот будет работать на одном и том же порте, но на другом реальном IP-адресе.

person Ravi Sinha    schedule 14.09.2015

Различные экземпляры с разным контекстом с одинаковым номером порта:

  <!-- Test1 -->
  <Host name="192.168.1.254"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">

    <!-- SingleSignOn valve, share authentication between web applications
         Documentation at: /docs/config/valve.html -->
    <!--
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    -->

    <!-- Access log processes all example.
         Documentation at: /docs/config/valve.html
         Note: The pattern used is equivalent to using pattern="common" -->
    <Context docBase="Testing" path="/" reloadable="true"/>
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="254_access_log" suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />

  </Host>

  <!-- Test2 -->
  <Host name="192.168.1.250"  appBase="webapps1"
        unpackWARs="true" autoDeploy="true">

    <!-- SingleSignOn valve, share authentication between web applications
         Documentation at: /docs/config/valve.html -->
    <!--
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    -->

    <!-- Access log processes all example.
         Documentation at: /docs/config/valve.html
         Note: The pattern used is equivalent to using pattern="common" -->
    <Context docBase="Testing2" path="/" reloadable="true"/>
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="250_access_log" suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />

  </Host>

  <!-- Test3 -->

  <Host name="192.168.1.249"  appBase="webapps2"
        unpackWARs="true" autoDeploy="true">

    <!-- SingleSignOn valve, share authentication between web applications
         Documentation at: /docs/config/valve.html -->
    <!--
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    -->

    <!-- Access log processes all example.
         Documentation at: /docs/config/valve.html
         Note: The pattern used is equivalent to using pattern="common" -->
    <Context docBase="Testing3" path="/" reloadable="true"/>
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="249_access_log" suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />

  </Host>
person jai ram    schedule 20.10.2017