簡體   English   中英

Amazon S3上的靜態托管 - DNS配置

[英]Static hosting on Amazon S3 - DNS Configuration

我正在開發一個小型webapp(所有客戶端)我想在Amazon S3上托管它。 我已經找到了幾個這方面的指南,並設法創建了一個桶(與我的域名相同),將其設置為網站並上傳一些內容。

在我努力的地方,以及所有文檔開始變得有點模糊的地方,是如何正確配置我的DNS。

我的所有注冊商( 123-reg )都可以建議網絡轉發給我mydomain.com.s3.amazonaws.com

我需要配置什么,以及在哪里(即123-reg / Amazon)可以獲得干凈的URL?

聽起來你已經完成了大部分工作。 為清楚起見,我會再次檢查這些步驟,以確保您的設置正確:

  1. 使用您的域名作為存儲桶名稱創建一個s3存儲桶(如果您希望您的網站是example.com或www.example.com,您的存儲桶名稱應為www.example.com)

  2. 將您的內容上傳到s3存儲桶。 為您的網站索引文件選擇一致的名稱(通常是index.html)。 您還可以上傳404 Not Found錯誤的自定義頁面。 請撥打404.html。 為您網站中的每個文件授予讀取權限,以便公眾可以查看它。 不要對存儲桶提供任何額外的權限,只包括其中的文件。

  3. 將您的存儲桶配置為網站。 使用AWS控制台( https://console.aws.amazon.com/s3/ ),您可以選擇存儲桶,單擊屬性,然后選擇“網站”選項卡。 單擊“啟用”並將索引文檔設置為“index.html”,將錯誤文檔設置為“404.html”。 您還需要設置具有訪問權限的存儲桶,以允許通過Web訪問( http://docs.amazonwebservices.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html

  4. 記下網站配置選項卡中的“端點”URL。 這是您網站的所在地。 您可以在新窗口中打開鏈接,您應該看到您的網站。 單擊並確保一切按預期工作。

您必須在以下所有步驟中使用端點地址。 正常的www.example.com.s3.amazonaws.com無法使用 - 您需要使用區域版本( http://www.example.com.s3-website-us-east-1.amazonaws.com/

現在,我們可以設置DNS以為您提供干凈的自定義URL。

首先,我們會將www.example.com映射到您的網站。

使用DNS提供商的工具(在您的情況下為123-reg),您需要創建CNAME記錄以將www.example.com映射到www.example.com.s3-website-us-east-1.amazonaws.com

如果您只是想要www.example.com,那么CNAME是您唯一需要的。 大多數人也希望“example.com”工作,所以我們需要另一步。

example.com通常被稱為裸域或域的頂點記錄。 這是一個問題的原因是它不能是CNAME。 CNAME僅適用於“www”等子域。 這使得指向s3變得更加困難。

通常的方法是使用服務自動將任何發送到example.com的請求重定向到指向www.example.com。 然后,這將獲取您的CNAME記錄,您的網站將從s3提供。

使用普通舊DNS無法實現自動重定向,因此您必須使用其他服務。 一些DNS提供商提供此服務以及他們的DNS(godaddy確實如此,amazon route53沒有。不確定123-reg)

如果您的DNS提供商不這樣做,那么有一些免費服務。 我使用的是http://wwwizer.com/naked-domain-redirect - 它不需要任何注冊或付款。

要使用此類服務​​,您需要為裸域創建DNS“A”記錄。 對於wwwizer.com服務,您需要創建A記錄以將example.com指向174.129.25.170。 就這樣!

因此,使用此設置,如果用戶在其瀏覽器中鍵入example.com,則會發生以下情況:

  1. DNS查詢:example.com - > 174.129.25.170(wwwizer.com的服務)
  2. 對example.com的174.129.25.170的HTTP請求
  3. 174.129.25.170重定向example.com - > www.example.com
  4. DNS查詢:www.example.com - > CNAME到www.example.com.s3-website-us-east-1.amazonaws.com
  5. DNS查詢:www.example.com.s3-website-us-east-1.amazonaws.com - >指向Amazon S3
  6. 現在,Amazon S3會為www.example.com提供HTTP請求

請享用!

我相信您必須選擇存儲桶中的所有文檔,右鍵單擊,然后選擇“公開”。 每次桶中的某些變化時,您都必須這樣做。 然后我通常右鍵單擊存儲桶,選擇屬性,在右側窗格中選擇權限,然后添加“Everyone as a”grantee“,然后只給它們”list“權限。你的文章的其余部分非常好。關於裸域的部分幫助我可以解決我的問題。您也可以將裸域重定向到S3中“靜態網站托管”下的www域。這可能是最簡單的方法。再次感謝您的幫助。

蒂姆

從123-reg控制面板上的高級DNS屏幕

  • 我首先點擊“重置DNS”按鈕,進入默認的123-reg設置。

這給了我以下內容;

DNS條目 類型 優先級 TTL 目的地/目標
* A.                      81.xx.xx.xx
@ A                      81.xx.xx.xx
@ MX 10          xx0.123-reg.co.uk
@ MX 20          xx1.123-reg.co.uk

  • 然后我添加了這個條目

www CNAME                      www.example.com.s3-website-us-east-1.amazonaws.com

從他們的管理DNS指南pdf中可以看出,“@ record”是指“你的域名是最純粹的,沒有子域名”,即裸域stackoverflow.com

但它沒有提到“*記錄”是什么,我認為它將捕獲所有子域並認為它可能超過CNAME記錄,但事實並非如此。

更新2019年

截至今天,隨着DNS設置讓我使AWS S3靜態網站正常工作:

存儲桶映射的DNS設置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM