Руководство по настройке Apache2 с несколькими различными экземплярами Tomcat 7 - PullRequest
5 голосов
/ 02 апреля 2012

Я понимаю, что этот вопрос, вероятно, задавался много раз, но я не смог найти хороший, актуальный ответ. Единственное руководство, которое мне удалось найти, было с 2005 года и было на tomcat 5. Кажется, многие пути ОС изменились.

Наша ситуация такова:

Мы хотим запустить несколько экземпляров tomcat 7 на одном сервере. Каждый кот обслуживает свой адрес. Например, www.oursite.com должен подаваться из отдельного кота, а не test.oursite.com. Так, например, базовая установка tomcat будет находиться в /opt/tomcat/, а каталоги, специфичные для экземпляра (это то, что я мог разглядеть из этого старого урока), будут в /home/user1/some/path/ и /home/user2/some/path, так что все будет хорошо разделено.

Может кто-нибудь указать на хороший учебник или, может быть, объяснить здесь шаги для его настройки? Я немного новичок в настройках Apache.

Есть ли какие-либо преимущества / недостатки в этом? Будет ли один экземпляр кота лучше? Мы должны иметь возможность отключать сайты по одному, не влияя друг на друга. Кроме того, наш DNS-провайдер не позволяет нам настраивать скрытые перенаправления, поэтому мы должны пройти через Apache, чтобы иметь хорошие URL-адреса, а не перенаправлять прямо на котов.

Спасибо

Ответы [ 2 ]

8 голосов
/ 04 апреля 2012

Я полагаю, у вас есть 2 вопроса здесь:

  1. Как запустить несколько экземпляров tomcat на одном и том же сервере?
  2. Как настроить apache httpd для работы с виртуальным хостом и передним tomcat?

Для 1. Ниже приведено очень хорошее руководство по запуску нескольких экземпляров tomcat на одном сервере:http://java.dzone.com/articles/running-multiple-tomcat, а вы?ответ "это зависит".Если у вас есть сверхмощная коробка, и она не используется, вы должны.Это также зависит от того, какое приложение вы запускаете для каждого отдельного сайта.Это определенно поможет вам «отключать сайты по одному, не влияя друг на друга».С настройкой apache httpd, которую я объясню в следующем разделе, вы также можете запускать каждый сайт на отдельных машинах (физических или виртуальных).

Для 2. В вашем случае вам просто нужно настроить apache httpd длясделайте виртуальный хост и используйте ajp для подключения к tomcat.

<VirtualHost *:80>
    ServerName www.oursite.com

    ProxyPass / ajp://tomcat.oursite.com:8009/www retry=5
    ProxyPassReverse / ajp://tomcat.oursite.com:8009/www
</VirtualHost>

<VirtualHost *:80>
    ServerName test.oursite.com

    ProxyPass / ajp://tomcat.oursite.com:8010/test retry=5
    ProxyPassReverse / ajp://tomcat.oursite:8010/test
 </VirtualHost>

В приведенной выше конфигурации вам необходимо настроить записи DNS как www.yoursite.com, так и test.yoursite.com, чтобы они указывали на один и тот же хост,Также предполагается, что вы запускаете оба веб-приложения www и test на разных экземплярах tomcat на одном хосте tomcat.oursite.com, один на порту 8009 ajp, а другой на порту 8010 ajpВы также можете изменить его на другой собственный сервер.Это очень гибкий.К вашему сведению, вот как настроить ajp в tomcat: http://tomcat.apache.org/tomcat-6.0-doc/config/ajp.html

0 голосов
/ 08 мая 2015

Я обнаружил проблему с соединителем apache mod_proxy_ajp в такой конфигурации, он абсолютно не позволит вам использовать любой другой порт при настройке нескольких виртуальных хостов, каждый со своим собственным экземпляром tomcat.

ПотративНекоторое время исключая конфликты портов, проблемы с конфигурацией tomcat, проблемы с брандмауэром. Я пришел к выводу, что ProxyPass и ProxyPassReverse не будут работать при использовании любого порта, кроме 8009. По умолчанию.

Решением может быть переключение на mod_jk,это также решает проблемы, наблюдаемые в mod_proxy_ajp с базовыми конфигурациями, не загружающими или перезаписывающими URL-адреса, встроенные в страницы, размещенные на tomcat, без значительных изменений конфигурации, если экземпляр tomcat имеет корни в подкаталоге.Похоже, этого не происходит с Mod_Jk

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...