2011-11-29 35 views
1

這兩臺機器A和B都是NAT後面的1個IP地址。如何將同一端口上的兩個URL重定向到兩個diff IP的內部

Url.xyz.com進入機器A對Apache 2.2的 和url2.xyz.com服務端口80,應該去到機器B上通過Apache 2.2的那臺機器

我已經擔任80端口機A從我的網關採取所有入站端口80數據包...在一個點我有apache的機器一個安裝程序來做到這一點,但現在我掙扎 重新獲得良好的配置。我使用上有很好的理由一個diff機B中的DIFF OS ....

我記得在機器上的Apache 2.2設置虛擬服務器url2.xyz.com一個使用 80端口,然後在設置主機文件機A和B有一個線題爲:

192.168.0.x的url2.xyz.com URL2

和機器上的apache設置文件根url2.xyz.com甲等於文檔根在機器B.(它不會佔用一個空白區域....)

我要麼做夢,要麼缺少一個輕微的設置步驟。任何幫助讚賞。我記得,大約半年前,它似乎是apache的機器上的讀取主機文件,這樣做的權利..

淨良好的結果(希望)是計算機A上的虛擬服務器從機內容B(或C或D等)

或者我會嘗試從我的提供商獲得另一個IP地址。

回答

2

一種可能性是讓機器A充當機器B的代理。這意味着兩個域的所有請求都轉到端口80上的機器A,但是您在apache中設置了基於名稱的虛擬主機。虛擬主機url2.xyz.com然後轉發的請求,機器B.

事情是這樣的:在機器A

虛擬主機:

<VirtualHost *:80> 
ServerName url1.xyz.com 
DocumentRoot /var/www/url1 
</VirtualHost> 

<VirtualHost *:80> 
ServerName url2.xyz.com 
ProxyPass/http://url2.machineB/ 
ProxyPassReverse/http://url2.machineB/ 
</VirtualHost> 

,然後在機器A可以定義url2.machineB指向機器B的IP地址。您可以通過在文件/ etc/hosts中添加一行來完成此操作。然後在B機創建一個Apache虛擬主機監聽該域,像這樣:

<ViirtualHost *:80> 
ServerName url2.machineB 
DocumentRoot /var/www/url2 
</VirtualHost> 

這可能不是完全的解決方案,但應該給你一個選擇服用。有關代理的更多信息,請參閱http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

相關問題