Мне нужно запустить несколько экземпляров tomcat6 под разными именами каталогов на одном и том же порту. Я буду устанавливать tomcat6 дважды для двух разных проектов. Но как настроить оба экземпляра для работы на одном и том же порту?Запуск нескольких экземпляров Tomcat на том же порту
ответ
Это можно реализовать с помощью веб-сервера apache, который направляет запросы на основе приложения с использованием mod_jk или mod_proxy. (И получить объяснение на обоих расширений)
Чтобы выбрать апач расширение для использования: apache to tomcat: mod_jk vs mod_proxy
Его невозможно запустить два сервиса для обслуживания через один порт. Вы можете запустить только один код для каждого порта.
Только один процесс может прослушивать определенный порт за раз. Поэтому то, что вы хотите сделать, прямо не возможно. Возможно, вам повезло с запросами пересылки другому экземпляру или другим сервером в качестве интерфейса (например, Apache).
Да, вы можете. В 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 "%r" %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 "%r" %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 "%r" %s %b" />
</Host>
В каталоге webappsApp1 вы положили войну App1, то же самое для каталога webappsApp2 и App2.
В зоне dns App1 и App2 помещается общедоступный IP-адрес сервера.
Да, вы можете запускать несколько экземпляров tomcat (или любого другого объекта) на одном и том же порту. Для этого вам нужно иметь несколько Real IP, ограниченных VIP, и каждый RIP может использовать свой собственный порт для прослушивания.
Итак, каждый tomcat будет работать на одном и том же порту, но на другом реальном IP-адресе.
Различные экземпляры с различными 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 "%r" %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 "%r" %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 "%r" %s %b" />
</Host>
Это путь! –