На нашем сервере www.example.com
, мы используем <Location>
директива для прокси-трафика на внутренний сервер:
<Location /app1>
ProxyPass http://192.168.1.20
</Location>
Затем мы добавили поддомен uat.example.com
который указывает на тот же IP-адрес www.example.com
. Мы хотим использовать его в качестве прокси для клиента для тестирования разрабатываемого приложения. Надеюсь, клиент может получить доступ через:
http://uat.example.com/app2_uat
Теперь, если мы добавим Location:
<Location /app2_uat>
ProxyPass http://192.168.1.30
</Location>
Клиент может получить доступ к обоим:
http://www.example.com/app2_uat
http://uat.example.com/app2_uat
Как я могу ограничить Location так, чтобы только:
http://uat.example.com/app2_uat
Доступно? (т.е. http://www.example.com/app2_uat
не должны быть доступны.)
Это легко сделать, если использовать NameVirtualHost
вариант в Apache. у меня есть подробный ответ для другого пользователя здесь. Основная идея состоит в том, что вы создадите два разных VirtualHost
конфиги для каждого поддомена. Как только вы это сделаете, вы сможете настроить конфигурацию обоих поддоменов и достичь требуемой детализации.
РЕДАКТИРОВАТЬ: Добавление подробностей о том, как настроить NameVirtualHost
для оригинальных плакатов конкретные детали вопроса:
В общем, вам нужно сначала активировать NameVirtualHost
для нужного порта. Я предполагаю, что вы будете использовать порт 80, поэтому найдите эту строку в своей конфигурации Apache - она может быть в /etc/apache2/ports.conf
- & установить так:
NameVirtualHost *:80
Убедитесь, что ваша конфигурация Apache - шансы те же /etc/apache2/ports.conf
как указано выше - для списка установлен порт 80. Что и должно быть, но добавляем здесь для справки:
Listen 80
Здесь происходит волшебство. Опять же, я просто делаю самые простые основы, поэтому подстраивайтесь под любые настройки вашего сервера. Это для www.example.com
:
<VirtualHost *:80>
ServerName www.example.com
ServerAlias www.example.com
<Location /app1>
ProxyPass http://192.168.1.20
</Location>
</VirtualHost>
А теперь для uat.example.com
создайте новую конфигурацию так:
<VirtualHost *:80>
ServerName uat.example.com
ServerAlias uat.example.com
<Location /app2_uat>
ProxyPass http://192.168.1.30
</Location>
</VirtualHost>
Используя NameVirtualHost
вы можете настроить две отдельные конфигурации домена, привязанные к одному IP-адресу. Опять же, для получения более подробной информации просмотрите ответ, на который я указал выше.