Назад | Перейти на главную страницу

Размещение двух веб-приложений на одном сервере

Не вдаваясь в подробности, я пытаюсь настроить (через apache) два веб-приложения, которые будут обслуживаться с одного сервера (внутренней разработки). Сейчас у меня два VirtualHost директивы и два приложения, работающие на разных портах. Вместо этого я хотел бы, чтобы URL-адрес определял, какое приложение используется, поэтому, например, myapp.domain.com перенаправит на одно приложение и любое другое .domain.com перейду к другому. Настроить внутренний DNS для заботы об этом не проблема. Но я не очень хорошо знаком с apache, как лучше всего это сделать?

В рамках <VirtualHost> вы можете использовать ServerName; это директива, указывающая Apache обрабатывать запросы для этого конкретного имени. Вы также можете использовать ServerAlias чтобы указать другие домены (и не только!), которые вы хотите VirtualHost для обработки запросов.

Например, вы можете настроить свои директивы следующим образом

<VirtualHost ...>
    ServerName foo.example.com
    ...
    #Handle webapp1 in here
    ...
</VirtualHost>

<VirtualHost ....>
    ServerName example.com
    ServerAlias *.example.com
    ...
    #Handle webapp2 in here
    ...
</VirtualHost>

Документация Apache содержит несколько очень хороших примеров для большинства случаев использования в своей документации (http://httpd.apache.org/docs/2.0/vhosts/examples.html). Вас также могут заинтересовать их "дефолт"катчалл на полпути вниз, который по сути является перехватом любых запросов виртуального хоста, которые не соответствуют предыдущим директивам.