2010-10-10 26 views
1

我與一個Web開發框架,發佈其應用在Apache服務器端口的工作:8080,8081,8082,等倍數域指向型動物端口Apache服務器

例如MyApp1運行在本地主機:8080, MyApp2在localhost:8081中運行,依此類推。

我想實現的是我的域名指向一個「端口」,其應用程序在我的apache web服務器上運行,例如, www.mydomainclient1.com應指向8080端口,www.mydomainclient2.com應指向8081端口。

我所做的是我已進入我的域名提供商網站,然後去總的DNS控制,並指出這些域到我的專用服務器IP。

現在,我的域指向mydedicatedserverIP,因此當我執行www.mydomainclient1.com和www.mydomainclient2.com時,它們都訪問mydedicatedserverIP,默認情況下爲80端口。

我試圖解決的情況是:

我想有www.mydomainclient1.com直接指向mydedicatedserverIP:8080和www.mydomainclient2.com指着mydedicatedserverIP:8081。

你認爲這是一個很好的解決方案嗎? (我希望我的問題是非常明顯的,由於我沒有,你可以看到一個以英語爲母語)

環境:Debian的Linux的萊尼5,Apache服務器2.2.9-10 + lenny8

我作爲一個新手在Apache服務器上的任何評論或建議將非常讚賞,即使你認爲是明顯的東西:-)。

回答

5

爲了確保我明白你的意思:你想 -

  • 客戶端發出HTTP請求http://mydomain1.com(80端口) - 然後去你的服務器在8080端口上;
  • 客戶端向http://mydomain2.com(端口80)發出HTTP請求 - 然後轉到服務器上的端口8081。

唯一合理的方法(我知道的),你可以在Apache中實現這一目標是通過什麼叫做反向代理,這裏解釋:http://httpd.apache.org/docs/current/mod/mod_proxy.html

一言以蔽之:定義兩個基於域名虛擬主機偵聽端口80,每個反向代理請求到「隱藏」服務器。這兩個定義幾乎完全相同......這裏是其中一個定義的草圖,你應該能夠得出另一個的結論。

<NameVirtualHost *:80> 
    ServerName mydomain1.com 
    ServerAlias www.domain1.com 
    ... *other aliases as you wish* ... 
    ProxyPass/http://localhost:8080/ 
    ProxyPassReverse/http://localhost:8080/ 
</NameVirtualHost> 

上述定義會導致未來在端口80上的所有HTTP請求,在他們的「服務器路徑」頭「mydomain1.com」(這是標準的行爲時,在包含服務器名稱的URL有人類型,不用擔心關於它)或任何提到的別名,將被反向代理爲「localhost:8080」。

試試這個,讓我們知道它是如何去的。祝你好運!