Tengo un servidor apache que funciona como un proxy inverso en nuestra DMZ. Tenemos un servicio externo que publica de nuevo a una URL particular en este servidor. Ahora es necesario que este servicio realice una devolución de datos a una aplicación completamente nueva, pero es probable que esto vuelva a cambiar en el futuro cercano, ya que estamos en una fase de prueba en este momento.Apache Rewrite then Proxy Pass
Para resolver esto, intento tomar la solicitud de devolución de datos entrante, /smsPostback.php
, y reescribirla en una nueva URL relativa, /SMSHandler/Process
. Esta parte está funcionando.
Sin embargo, definido inmediatamente a continuación en la configuración, tengo una directiva ProxyPass para proxy todo el tráfico a /SMSHandler
a un servidor interno.
Estas son las nuevas líneas del archivo de 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
Y estos son los registros del registro de reescritura:
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]
y esta es la entrada de registro de errores de Apache:
[Tue Jan 24 18:43:36 2012] [error] [client 172.29.61.49] File does not exist: C:/fmfacilitymaintenance.com/SMSHandler
Cualquier idea de por qué nunca reverso proxy la solicitud, sino que intenta (y falla) a servirlo localmente? ¡Gracias!
Gracias Jon! Eso lo hizo! – Matt
puede soltar el 'Último', está implícito en Passthrough http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_pt – oberhamsi