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