5
我有一個在我們的DMZ中作爲反向代理的apache服務器。我們有一個外部服務,可以回傳給這臺服務器上的特定網址。現在需要將此服務回發給全新的應用程序,但由於我們目前正處於測試階段,因此很可能在不久的將來再次發生更改。Apache Rewrite然後代理通行證
因此,爲了解決這個問題,我試圖將傳入的回發請求/smsPostback.php
重寫爲一個新的相對URL /SMSHandler/Process
。這部分工作。
但是,在配置中立即定義下面,我有一個ProxyPass指令代理所有流量到/SMSHandler
到內部服務器。
這些都是從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
而這些都是從重寫日誌日誌:
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]
這是Apache的錯誤日誌條目:
[Tue Jan 24 18:43:36 2012] [error] [client 172.29.61.49] File does not exist: C:/fmfacilitymaintenance.com/SMSHandler
任何想法,爲什麼它從不反向代理請求,而是嘗試(並失敗)在當地提供服務?謝謝!
謝謝喬恩!那樣做了! – Matt
你可以放棄'最後一個',它暗含着直通http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_pt – oberhamsi