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_OFFICENAME
do części z nazwą biura katalogowego i
       ProxyHTMLURLMap
wstawi tę nazwę w odpowiednim miejscu w przepisanych linkach.
Ale kiedy testuję tę konfigurację, link pierwotnie wskazujący
/other/page.html
przepisany na
/testadmin-unknown/other/page.html
zamiast
/testadmin-warsaw/other/page.html
zgodnie z oczekiwaniami. Innymi słowy,
       ProxyHTMLURLMap
zachowuje się jak zmienna środowiskowa
       MATCH_OFFICENAME
był 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?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Składnia

bez
         env:
prawidłowo. W
         AH00111
komunikat ostrzegawczy, który generuje, jest fałszywy, zgodnie z

Błąd Apache # 58467
https://bz.apache.org/bugzilla ... 58467
.
Konfiguracja:
<LocationMatch "^/testadmin-(?<OFFICENAME>\w+)/(.*)$">
ProxyPassMatch http://$1.example.com:3000/$2
ProxyPassReverse/
ProxyHTMLEnable On
ProxyHTMLInterp On
ProxyHTMLURLMap//testadmin-${MATCH_OFFICENAME|unknown}/ VL
RequestHeader unset Accept-Encoding
</LocationMatch>

działa zgodnie z przeznaczeniem, z wyjątkiem fałszywego ostrzeżenia przy każdym uruchomieniu.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się