Сейчас у меня есть несколько виртуальных хостов, которые идентифицируются субдоменом, а затем проксируются на сервер следующим образом:
<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]
флаг.