2011-04-09 24 views
13

有沒有辦法我可以隱藏端口從URL和使用cname(別名),而不是:。是否有可能使用CNAME(別名)<host:port>

例如,如果我的網址http://myserver.com:40089/webapps/index.jsp 是它可以讓我用 http://mycname/webapps/index.jsp

原因,我告訴是,我可以環繞箱稱爲myserver.com移動說myserver1.com。我不希望客戶在我移動時總是更改此網址。相反,我的客戶應該不知道服務的運行地點和端口。

可能嗎?我使用碼頭作爲我的網絡服務器。

在此先感謝。

+0

我認爲你不能設置端口。標準80端口有什麼問題? – Nishant 2011-04-09 11:20:17

回答

0

是且不是......是的,你可以互換使用cname(但請記住,cookie可能不會依賴於它們的域名而行),但是如果你的服務器運行在80以外的端口上,您必須在URL中包含端口號。

+0

我該怎麼做?我沒有使用cookie。它只是用來暴露webservice並顯示簡單的網頁。 – Ajay 2011-04-09 11:22:16

+0

您所要做的就是確保您的應用程序(由您共享)輸出的鏈接指向mycname。如果你想變得更加流暢,你可以使用apache和mod_rewrite重定向所有發往myserver.com - > mycname的流量。 – stevevls 2011-04-09 11:33:40

2

編號CNAME只映射名稱,而不映射端口。如果要將x:b映射到c:d,則需要反向代理。

9

使用DNS CNAME,您只能從一個主機名指向另一個主機名。港口號碼是完全不同的一塊蛋糕。

有幾個問題與所描述的情況:

  • ,如果你在你的DNS設置的CNAME你可能需要修改你的網絡服務器,以及處理新的主機名,因爲HTTP協議的工作原理是這樣
  • 作爲@stevevis說你會失去你的cookies和緩存,甚至排名在搜索引擎
  • 你還是要在您的地址端口號:http://mycname:40080/webapps/index.jsp

你還沒有提到,但我認爲你不能修改你的網絡服務器設置,因爲在這種情況下你也可以修改端口號。

但是有一個解決這個問題的小犧牲。

您可以安裝一個HTTP反向代理服務器將請求轉發到網絡服務器(例如,HAProxy,nginx等),但是這樣您將丟失原始客戶端的IP地址(當然,您可以將其轉發一個HTTP頭,但你必須修改你以前的域的代碼來處理這個)。

4

嘗試使用SRV記錄來做到這一點。這是我用來爲我的Minecraft服務器獲得一個自定義域的。

相關問題