Czy możesz jednocześnie używać Przekierowania i Proxypass

16

Korzystam z Apache 2.2.15 na CentOS, aby zapewnić SSL dla aplikacji TomCat.

ProxyPass / http://127.0.0.1:8090/ connectiontimeout=300 timeout=300
ProxyPassReverse / http://127.0.0.1:8090

To działa dobrze i wszystko jest świetne; chcę jednak dodać następujący wiersz:

Redirect permanent /broken/page.html https://www.servername.com/correct/page.html

przed powyższym, aby obsłużyć błąd w samej aplikacji TomCat. Jednak nie działa tak, jak się spodziewam (tj. Wydaje się, że nic nie robi i nic nie zmienia). Czy można w ten sposób korzystać z Przekierowania? Niestety nie mam możliwości edycji aplikacji.

bombcar
źródło

Odpowiedzi:

23

Tak! Powyżej ProxyPass /dodaj:

ProxyPass /broken/page.html !

Zmusi to proxy do niedziałania na stronie, którą próbujesz przekierować.

Shane Madden
źródło
Dziękuję Ci! Zastanawiałem się, czy muszę coś takiego zrobić, ale pomyślałem, że to pierwsze. Działa świetnie!
bombcar
2
Kolejny przykład na stackoverflow: stackoverflow.com/questions/26595592/use-redirect-and-proxypass/...
Christopher Schultz
9

<Proxy>bloki są również przydatne, ponieważ kontekst jest zawsze rozumiany jako mający zastosowanie do ruchu proxy. W ten sposób nie musisz wykluczać określonych ścieżek.

<Proxy *>
    Redirect permanent /broken/page.html https://www.example.com/correct/page.html
    RedirectMatch ^/deadstuff.+ http://www.example.com/correct/page.html
</Proxy>

ProxyPass / http://127.0.0.1:8090/ connectiontimeout=300 timeout=300
ProxyPassReverse / http://127.0.0.1:8090
Andrew B.
źródło