Mam serwer apache, który działa jako odwrotny serwer proxy w naszym DMZ. Mamy zewnętrzną usługę, która przesyła z powrotem do konkretnego adresu URL na tym serwerze. Teraz ta usługa wymaga odświeżenia do zupełnie nowej aplikacji, ale najprawdopodobniej ulegnie ona zmianie w najbliższej przyszłości, ponieważ jesteśmy teraz w fazie testowania.Przepustka Apache, a następnie Proxy Pass
Aby rozwiązać ten problem, próbuję odebrać przychodzące żądanie odświeżenia poczty, /smsPostback.php
, i przepisać je na nowy względny adres URL, /SMSHandler/Process
. Ta część działa.
Jakkolwiek zdefiniowałem bezpośrednio poniżej w konfiguracji, mam dyrektywę ProxyPass do proxy całego ruchu do /SMSHandler
do wewnętrznego serwera.
Są to nowe linie z pliku apache conf:
RewriteRule ^/smsPostback.php$ /SMSHandler/Process
##Proxy pass smshandler
ProxyPass /SMSHandler http://172.29.61.49:8080/SMSHandler
ProxyPassReverse /SMSHandler http://172.29.61.49:8080/SMSHandler
A oto logi z dziennika przepisywania:
172.29.61.49 - - [24/Jan/2012:18:43:36 --0500] [test.hidden.com/sid#5eace0][rid#446b770/initial] (2) init rewrite engine with requested uri /smsPostback.php
172.29.61.49 - - [24/Jan/2012:18:43:36 --0500] [test.hidden.com/sid#5eace0][rid#446b770/initial] (3) applying pattern '^/smsPostback.php$' to uri '/smsPostback.php'
172.29.61.49 - - [24/Jan/2012:18:43:36 --0500] [test.hidden.com/sid#5eace0][rid#446b770/initial] (2) rewrite '/smsPostback.php' -> '/SMSHandler/Process'
172.29.61.49 - - [24/Jan/2012:18:43:36 --0500] [test.hidden.com/sid#5eace0][rid#446b770/initial] (2) local path result: /SMSHandler/Process
172.29.61.49 - - [24/Jan/2012:18:43:36 --0500] [test.hidden.com/sid#5eace0][rid#446b770/initial] (2) prefixed with document_root to C:/hidden.com/SMSHandler/Process
172.29.61.49 - - [24/Jan/2012:18:43:36 --0500] [test.hidden.com/sid#5eace0][rid#446b770/initial] (1) go-ahead with C:/hidden.com/SMSHandler/Process [OK]
I to jest wpis w dzienniku błędów z apache:
[Tue Jan 24 18:43:36 2012] [error] [client 172.29.61.49] File does not exist: C:/fmfacilitymaintenance.com/SMSHandler
Wszelkie przemyślenia na temat tego, dlaczego nigdy nie odwracają żądań, ale raczej próbują (i zawodzą) podawać to lokalnie? Dzięki!
Dzięki Jon! Tak to zrobiło! – Matt
możesz upuścić 'Last', co jest implikowane przez Passthrough http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_pt – oberhamsi