несколько версий tomcat на одном сервере

Я поддерживаю веб-сервер, который содержит 3 веб-приложения jsf2, развернутые в настоящее время на tomcat7. Наша архитектура настроена с использованием mod-jk от apache через порт 80 к трем экземплярам, ​​по одному для каждого веб-приложения. Помимо других причин, мне нужен tomcat8 для одного веб-приложения и tomcat7 для других. Я не мог понять, как это сделать, поскольку я могу определить только один рабочий файл в конфигурации apache. Это архитектура сервера:

Internet -> Apache 2 (open on Port 80 only)
Tomcat 7 instance 1 on Port 8180
Tomcat 7 instance 2 on Port 8280
Tomcat 7 instance 3 on Port 8380

Queries from Web redirected to tomcat instances:
server/Webapp1 -> instance 1/Webapp1
server/Webapp2 -> instance 2/Webapp2
server/Webapp3 -> instance 3/Webapp3

Теперь я хочу, чтобы экземпляр 3 работал на Tomcat 8 вместо 7, но он должен быть доступен apache из-за ограничений порта. Новая архитектура должна выглядеть так:

Internet -> Apache 2 (open on Port 80 only)
Tomcat 7 instance 1 on Port 8180
Tomcat 7 instance 2 on Port 8280
Tomcat 8 instance 3 on Port 8380

Пытаясь использовать proxypass в различных конфигурациях, я не могу его использовать, так как он будет перенаправлять на порт, недоступный из Интернета.

Есть ли способ перенаправить только внутренне, поскольку Tomcat 8 - это совершенно другой процесс?


person Jörg Henke    schedule 16.07.2014    source источник


Ответы (1)


Я понял, что mod_jk также работает для разных установок tomcat, поэтому я установил 3 пакета tomcat и настроил mod_jk для использования каждого экземпляра tomcat. Конфигурация mod_jk (см. папку модулей apache) выглядит так:

<IfModule jk_module>
  JkWorkersFile /opt/workers.properties
  JkLogFile /var/log/apache2/mod_jk.log
  JkLogLevel warn
  JkShmFile /var/log/apache2/jk-runtime-status
  JkWatchdogInterval 60
  JkMountFile /opt/uriworkermap.properties
</IfModule>

Рабочий файл выглядит так:

worker.list=app1, app2, app3
worker.app1.port=8109
worker.app1.host=localhost
worker.app1.type=ajp13
worker.app2.port=8209
worker.app2.host=localhost
worker.app2.type=ajp13
worker.app3.port=8309
worker.app3.host=localhost
worker.app3.type=ajp13
person Jörg Henke    schedule 10.10.2014