2014-09-29 2 views
3

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

ответ

4

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

Чтобы выбрать апач расширение для использования: apache to tomcat: mod_jk vs mod_proxy

+0

Это путь! –

1

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

1

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

2

Да, вы можете. В 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> 

По

<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.

В зоне dns App1 и App2 помещается общедоступный IP-адрес сервера.

0

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

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

0

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

<!-- 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>