2009-01-23 77 views
1

我需要找到一種方法來將端口80上的一些流量代理到在單獨的端口上運行的tinyproxy。我們有一個客戶端在非常嚴格的防火牆後面工作,只有端口80打開(並且無法訪問像meebo.com等網站)。我希望我可以創建一個CNAME到我們的域名和一個虛擬主機上的Apache,捕獲新的CNAME請求,並將流量轉發到同一個盒子上運行的tinyproxy。使用Apache代理將流量轉發到tinyproxy

我知道tinyproxy設置正常,但是,當我嘗試通過Apache傳遞流量時,我甚至沒有看到任何流量。

有沒有人有建議的解決方案?這是我的虛擬主機條目:

<VirtualHost *:80> 
    ServerName sub.domain.com 
    ProxyPass/http://127.0.0.1:50001/ 
    ProxyPassReverse/http://127.0.0.1:50001/ 
</VirtualHost> 

其中Tinyproxy在端口50001

回答

0

運行,我不認爲這將是可能的。

ProxyPass適用於Web服務器的不透明代理 - 不會重定向到代理服務器。但它可能工作除了AFAIK VirtualHost只能通過http請求中的Host:標頭識別 - 所以只適用於真正的請求。

換句話說 - 客戶端將爲他們想要訪問的網站設置一個Host:標頭,這樣您的virtualHost就不會被使用。

0

要澄清,您的域的主機名是http://sub.domain.com/ ...,並且您已通過tinyproxyhost:50001驗證Tinyproxy爲您的網站提供服務?

我會考慮在你的網關上使用iptables來選擇目的地爲sub.domain.com在端口80上的NAT請求到端口50001上的tinyproxyhost。假設sub.domain.com在地址12.34.56.78,並且tinyproxy正在運行on 10.11.12.13:

 
iptables -t nat -A PREROUTING -p tcp -d 12.34.56.78 --dport 80 -j DNAT \ 
    --to 10.11.12.13:50001 

如果你真的想繼續使用Apache,你確定你已經完全啓用了mod_proxy嗎?確保你在你的配置如下太:

 
ProxyRequests Off 


Order deny,allow 
Allow from all 

當您嘗試訪問http://sub.domain.com在這種配置中,會發生什麼?你在Apache access_logerror_log中獲得什麼輸出?