2011-11-17 93 views
1

我看到幾個人描述如何做到這一點的自定義域與子域,但沒有人談論如何做到這一點沒有一個。如何指向域以從Amazon S3提供靜態網站? (而不是子域)

例子:Setting foobar.com and www.foobar.com to point to my Amazon S3–hosted site

我個人不想www前綴。沒有辦法做到這一點嗎?亞馬遜將它設置爲允許靜態網站和自定義域名,然後將其鎖定到前綴域名似乎很瘋狂?

由於提前,

回答

4

不幸的是你不能指向foobar.com到亞馬遜S3存儲和原因與DNS是如何工作的事情。

DNS不允許域名(稱爲區域頂點)的根指向另一個DNS名稱(您不能將foobar.com設置爲CNAME/only子域名.foobar.com可以是CNAME)

+0

人,就是這樣一個令人失望。謝謝你清理它,但;我無法在任何地方找到確切的答案! – Benjamin

+2

既然Route 53支持'ALIAS'記錄,這個答案不再是真的。別名記錄允許域的頂點爲同一個域中的存儲桶,雲計算分佈,彈性負載平衡器或另一個主機名返回A記錄(最後一點是,可以在不使用雙精度模式的情況下執行此操作) CNAME的-dip)。 –

13

由於歷史原因,任何URL都需要解析爲您已知道如何處理的子域:使用您的DNS提供商創建CNAME記錄,將www指向S3託管的子域。有些細節可以正確地描述,在其他地方很好地描述。

你還是要支持的用戶是誰,迷住他們的瀏覽器會自動填充http://.com和這樣的,要鍵入裸域domain.com,並讓它自動完成到您的默認子域,如www.domain.com

完成此操作的最簡單方法是使用www作爲默認子域,並將您的DNS提供商的A記錄指向wwwizer.com174.129.25.170)。他們會自動將任何裸域重定向到與前面的www相同的域。

如果您使用Amazon Route 53提供您的DNS服務,您將獲得最快的開發週轉,並且您的訪問者將獲得最快的DNS解析。路線53可以將其A記錄指向wwwizer.com。但是,您可能希望創建一個微型Amazon EC2實例,並開始對其進行編程。在50年代,每個人都重建自己的汽車。在80年代,每個人都把一個購物車推到Fry's的通道上,並建立了自己的電腦。現在,您希望能夠在雲中構建自己的計算機,出於許多原因您會發現,而Amazon EC2是最佳選擇。目前,您的雲計算機將爲您處理裸域。後來,生成靜態網站的電子郵件...

安裝Apache Web服務器(A在LAMP中; LAMP服務器將執行此操作),併爲每個域配置一個虛擬主機。然後在您的EC2實例中指出一個彈性IP地址,並更新Route 53以使您的A記錄指向此彈性IP地址。亞馬遜不支持將多個彈性IP指向相同的EC2實例,但您可以爲多個域A記錄提供相同的彈性IP,並使Apache在您的EC2實例中解決此問題。

這需要一些擺弄和試驗,因爲細節上有很多相互矛盾的建議。我使用ami-ad36fbc4實例鏡像(美國東部,64位EBS支持的Ubuntu 10.04 LTS),因爲我熟悉Ubuntu,Ubuntu有很多在線幫助,而且這個鏡像將會支持多年。我編輯/etc/apache2/httpd.conf有內容

NameVirtualHost * 

<VirtualHost *> 
ServerName first.net 
Redirect permanent/http://www.first.net/ 
</VirtualHost> 

<VirtualHost *> 
ServerName second.net 
Redirect permanent/http://www.second.net/ 
</VirtualHost> 

然後檢查使用

sudo /usr/sbin/apache2ctl configtest 

然後重新使用

sudo /etc/init.d/apache2 restart 

Apache是​​跨Linux發行版的標準Apache服務器的錯誤,但在細節上,例如因爲文件位置可能有所不同,例如可以是/etc/httpd.conf。例如,可能需要將Listen 80放在httpd.conf中,但如果該命令已經在其他地方,則Apache將引發錯誤。因此,請閱讀網頁說明,並準備Google提供的任何錯誤消息。

因爲我已經在使用亞馬遜路線53幾天來指向wwwizer.com,這個工作立即一旦我更新路線53指向我的彈性IP。在切換到Route 53之前,每次更改都需要幾天的時間來驗證,因爲信息通過網絡傳播。一旦每個人都知道要關注亞馬遜,亞馬遜可以更快地傳播其內部變化。

+0

哇,寫得很好!感謝您的全面信息! – Benjamin

1

由於這個問題被問到事情已經改變。現在可以使用根域來在S3上託管您的站點。

而不是隻有一個名爲「www.yourserver.com」的存儲桶,您必須創建另一個帶有裸(根)域名的存儲桶,例如, 「yourserver.com」。

之後,您將不得不使用亞馬遜的DNS服務Route 53.爲裸體域創建A記錄併爲「www」主機名創建CNAME。

請注意,您需要將域的域管理完全移至Amazon Route 53。

請參閱的相關詳細步行經過這裏:http://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html