Ludzie, staramy się konfiguracji Apache reverse proxy dla następującego scenariusza:ProxyPassMatch z ProxyPassReverse
- przychodzące żądania przybrać formę
http://foo.com/APP/v1/main.html
- Dla niektórych serwerach URL będzie odwoływać się do wersji różnica, powiedzmy,
http://foo.com/APP/v2/main.html
- Nadrzędny układ równoważenia obciążenia (HAProxy) wyśle żądanie na właściwy serwer, który będzie miał odwrotny serwer proxy Apache2, obsługujący serwer JBoss.
- Jeżeli wniosek pojawia się w Apache 2 będzie miał żądania trasy jak
/APP/v1/main.html
- chcemy, aby (wsteczny) pełnomocnika się
http://localhost:8080/AppContext/main.html
, niezależnie fragmentu wersji w adresie URL (v1, v2, etc.).
staram się zrobić to tak:
ProxyPassMatch ^/.*?/APP.*?/(.*)$ http://localhost:8080/AppContext/$1
ProxyPassReverse /APP http://localhost:8080/AppContext
moje pytania są następujące:
- Czy mój wykorzystanie
ProxyPassMatch
prawidłowe? - Mój
ProxyPassReverse
jest "statyczny". Jak mogę poinformować o potencjalnie zmiennych rzeczach po/APP
?
Dzięki za wszelkie spostrzeżenia.
-Raj
Dziękuję Jonowi za szybką odpowiedź. Staramy się, aby nasza konfiguracja Apache była wolna od wpisów specyficznych dla wersji, aby mieć jednolity szablon, który można swobodnie wdrożyć w klastrze. Wygląda na to, że nie można w niezawodny sposób wykonać zadania ProxyPassReverse. Czy zaproponowałbyś wykonanie tego poprzez jakiś moduł do przepisywania? – Raj
@Raj Rewrite nie pomoże, ponieważ jest w innym kierunku. Serwer aplikacji próbuje przekierować żądanie, nie wie nic o rzeczywistym adresie URL, który jest używany, aby uzyskać do niego dostęp, więc po prostu mówi: "Przejdź do http: // localhost: 8080/AppContext/coś", które przeglądarka zwróci błąd 404, ponieważ komputer, na którym działa przeglądarka, nie ma serwera aplikacji działającego na porcie 8080 lokalnego hosta lokalnego –