Не вдаваясь в подробности, я пытаюсь настроить (через 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). Вас также могут заинтересовать их "дефолт"катчалл на полпути вниз, который по сути является перехватом любых запросов виртуального хоста, которые не соответствуют предыдущим директивам.