Я искал около часа, и, хотя есть много соответствующих примеров, ни один из них не помог мне решить эту проблему.Использование правил прокси-сервера Apache для внутренних внутренних служб
У меня есть несколько локальных серверов, которые позволяют называть их сервером печати и управляемым коммутатором. Оба этих устройства размещают страницы администрирования на порту 80. У меня также есть веб-сервер на базе apache2.
Что я хочу сделать, это посетить example.com/printserver
и заставить его управлять прокси-соединением с сервером печати.
Многие примеры покажут вам что-то вроде этого
<VirtualHost *:80>
ProxyPass /printserver http://[local IP of print server]/printserver
ProxyPassReverse /printserver http://[local IP of print server]/printserver
ProxyPass /switch http://[local IP of managed switch]/switch
ProxyPassReverse /switch http://[local IP of managed switch]/switch
</VirtualHost>
Но это не делает логический смысл для меня. Страницы администрирования этих устройств не находятся на /printserver
, они находятся на /
.
Когда я настроить апач со следующим, я могу добиться того, чего я хочу за одну услугу
<VirtualHost *:80>
ProxyPass/http://[local IP of print server]
ProxyPassReverse/http://[local IP of print server]
</VirtualHost>
Кроме того, я заметил, что когда я настроить апач со следующим, он пытается прокси моей службы , но поскольку служба возвращает относительный URL-адрес, часть printserver
объединяется с относительным адресом, и вся вещь падает.
<VirtualHost *:80>
ProxyPass /printserver http://[local IP of print server]/printserver
ProxyPassReverse /printserver http://[local IP of managed switch]/switch
</VirtualHost>
Например, в предыдущем примере, где он работал, мой браузер отображает http://example.com/pathtoindex/indexOfPrintServer.php
во втором примере, где он падает вниз, мой браузер показывает http://example.com/printserverpathtoindex/indexOfPrintServer.php
Если я использую следующие
<VirtualHost *:80>
ProxyPass /printserver/ http://[local IP of print server]/printserver
ProxyPassReverse /printserver/ http://[local IP of managed switch]/switch
</VirtualHost>
Тогда мой браузер показывает следующее, что не получается, потому что http://example.com/pathtoindex
не будет получать мои правила прокси и не будет обрабатываться каким-либо другим виртуальным сервером.
HTTP: \ example.com \ pathtoindex \ indexOfPrintServer.php
То, что я хотел бы достичь:
Когда я посещаю http://example.com/printserver
, я хочу видеть, что я вижу, когда я посещаю http://[local IP of print server]
на мой местный сеть.
Аналогичным образом, когда я посещаю http://example.com/switch
Я хочу посмотреть, что вижу, когда я нахожусь http://[local IP of managed switch]
в своей локальной сети.