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

Могу ли я использовать apache для обратного прокси на основе подкаталога вместо поддомена?

Сейчас у меня есть несколько виртуальных хостов, которые идентифицируются субдоменом, а затем проксируются на сервер следующим образом:

<VirtualHost *:80>
ProxyPass / http://192.168.1.1/
ProxyPassReverse / http://192.168.1.1/
ServerName sub1.example.com
</VirtualHost>

<VirtualHost *:80>
ProxyPass / http://192.168.1.2/
ProxyPassReverse / http://192.168.1.2/
ServerName sub2.example.com
</VirtualHost>

Вместо этого я хочу иметь apache для прокси на основе example.com/sub1, example.com/sub2 и т. Д.

Ничего из того, с чем я экспериментировал, похоже, не работает так же хорошо, как поддомены. Я пробовал использовать директиву Alias, блоки местоположения и т. Д., Но он продолжает переписывать URL-адреса в моем браузере, которые, конечно, не могут получить доступ к внутренним машинам. Как это сделать правильно?

Непонятно, что вы пробовали. Первое, что я бы попробовал, - это простой прокси-сервер / subN на серверную машину.

<VirtualHost *:80>
    ProxyPass /sub1 http://192.168.1.1/
    ProxyPassReverse /sub1 http://192.168.1.1/
    ProxyPass /sub2 http://192.168.1.2/
    ProxyPassReverse /sub2 http://192.168.1.2/
    ServerName example.com
</VirtualHost>

Возможно, и базовое / обычное, выбрать серверную часть на основе пути в URL-адресе.

Это немного реже, чтобы по-настоящему каталог на основе, потому что обычно проксирование происходит до того, как запросы будут сопоставлены где-либо на диске, но это можно сделать с помощью mod_rewrite и [P] флаг.