Apache ProxyHTMLURLMap z podstawieniem ciągu z LocationMatch
Próbuję utworzyć odwrotne proxy Apache, aby udostępnić zestaw serwerów za pośrednictwem jednego punktu dostępu. Wszystkie serwery oferują interfejs administratora WWW na porcie 3000 i zamierzam przedstawić je wszystkie jako katalogi na odwrotnym proxy. Interfejsy zawierają łącza lokalne, które oczywiście należy przepisać, aby przejść do właściwego podkatalogu serwera na serwerze proxy.
Mogę osiągnąć pożądane zachowanie za pomocą fragmentów konfiguracji takich jak ten dla każdego serwera indywidualnie:
<Location/testadmin-warsaw/>
ProxyPass [url=http://warsaw.example.com:3000/]http://warsaw.example.com:3000/[/url]
ProxyPassReverse/
ProxyHTMLEnable On
ProxyHTMLURLMap//testadmin-warsaw/ L
RequestHeader unset Accept-Encoding
</Location>
Ponieważ staje się to dość uciążliwe i podatne na błędy w miarę pojawiania się i znikania serwerów, dążę do dynamicznej konfiguracji. Zgodnie z dokumentacją Apache, powinno działać:
<LocationMatch "^/testadmin-(?<OFFICENAME>\w+)/(.*)$">
ProxyPassMatch http://$1.example.com:3000/$2
ProxyPassReverse/
ProxyHTMLEnable On
ProxyHTMLInterp On
ProxyHTMLURLMap//testadmin-${env:MATCH_OFFICENAME|unknown}/ VL
RequestHeader unset Accept-Encoding
</LocationMatch>
<LocationMatch>ustawi zmienną środowiskową
MATCH_OFFICENAMEdo części z nazwą biura katalogowego i
ProxyHTMLURLMapwstawi tę nazwę w odpowiednim miejscu w przepisanych linkach.
Ale kiedy testuję tę konfigurację, link pierwotnie wskazujący
/other/page.htmlprzepisany na
/testadmin-unknown/other/page.htmlzamiast
/testadmin-warsaw/other/page.htmlzgodnie z oczekiwaniami. Innymi słowy,
ProxyHTMLURLMapzachowuje się jak zmienna środowiskowa
MATCH_OFFICENAMEbył zdenerwowany.
Jeśli pominę
env:część i po prostu włóż
/testadmin-${MATCH_OFFICENAME}/Apache rejestruje ostrzeżenie: „AH00111: zmienna konfiguracyjna $ {MATCH_OFFICENAME} nie jest zdefiniowana jako szablon do wysłania”.
Gdzie jest mój błąd?
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
1 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
bez
prawidłowo. W
komunikat ostrzegawczy, który generuje, jest fałszywy, zgodnie z
Błąd Apache # 58467
https://bz.apache.org/bugzilla ... 58467
.
Konfiguracja:
działa zgodnie z przeznaczeniem, z wyjątkiem fałszywego ostrzeżenia przy każdym uruchomieniu.