Lưu trữ tĩnh trên Amazon S3 - Cấu hình DNS


117

Tôi đang làm việc trên một ứng dụng web nhỏ (tất cả phía máy khách). Tôi muốn lưu trữ nó trên Amazon S3. Tôi đã tìm thấy một số hướng dẫn về điều này và đã quản lý để tạo cho mình một nhóm (có cùng tên với miền của tôi), đặt nó làm trang web và tải lên một số nội dung.

Nơi tôi đang gặp khó khăn và nơi mà tất cả các tài liệu bắt đầu hơi mơ hồ, đó là cách định cấu hình đúng DNS của tôi.

Tất cả những gì tổ chức đăng ký tên miền của tôi ( 123-reg ) có thể đề xuất là chuyển tiếp web mang lại cho tôi mydomain.com.s3.amazonaws.com

Tôi phải định cấu hình những gì và tôi có thể lấy URL sạch ở đâu (ví dụ: 123-reg / Amazon)?


Kể từ khi câu hỏi này được hỏi, mọi thứ đã thay đổi. Giờ đây, bạn có thể lưu trữ trang web của mình trên S # với miền gốc, hãy xem hướng dẫn tại đây: docs.aws.amazon.com/AmazonS3/latest/dev/…
pors

Câu trả lời:


248

Có vẻ như bạn đã hoàn thành hầu hết công việc rồi. Để rõ ràng, tôi sẽ xem lại các bước đó một lần nữa chỉ để đảm bảo rằng bạn đã thiết lập đúng cách:

  1. Tạo nhóm s3 bằng cách sử dụng tên miền của bạn làm tên nhóm (tên nhóm của bạn phải là www.example.com nếu bạn muốn trang web của mình là example.com hoặc www.example.com)

  2. Tải nội dung của bạn lên nhóm s3. Chọn một tên nhất quán cho các tệp chỉ mục trang web của bạn (thường là index.html). Bạn cũng có thể tải lên trang tùy chỉnh cho lỗi 404 Không tìm thấy. Gọi đây là 404.html. Cấp quyền Đọc cho mọi tệp trong trang web của bạn để công chúng có thể xem. Không cấp thêm bất kỳ quyền nào cho nhóm, chỉ cho các tệp bên trong.

  3. Định cấu hình nhóm của bạn làm trang web. Với bảng điều khiển AWS ( https://console.aws.amazon.com/s3/ ), bạn có thể chọn nhóm của mình, nhấp vào thuộc tính, sau đó chọn tab "Trang web". Nhấp vào bật và đặt tài liệu chỉ mục của bạn thành "index.html" và tài liệu lỗi của bạn thành "404.html". Bạn cũng sẽ cần đặt nhóm của mình với quyền truy cập để cho phép truy cập qua web ( http://docs.amazonwebservices.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html )

  4. Hãy ghi chú lại URL "Điểm cuối" trong tab cấu hình trang web. Đây là nơi trang web của bạn sống. Bạn có thể mở liên kết trong một cửa sổ mới và bạn sẽ thấy trang web của mình giống như giao diện của nó. Nhấp vào xung quanh và đảm bảo mọi thứ hoạt động như mong đợi.

Bạn PHẢI sử dụng địa chỉ điểm cuối trong tất cả các bước bên dưới. Www.example.com.s3.amazonaws.com thông thường sẽ không hoạt động - bạn cần sử dụng phiên bản khu vực ( http://www.example.com.s3-website-us-east-1.amazonaws.com/ )

Bây giờ, chúng tôi có thể thiết lập DNS để cung cấp cho bạn một URL tùy chỉnh, rõ ràng.

Đầu tiên, chúng tôi sẽ ánh xạ www.example.com với trang web của bạn.

Sử dụng các công cụ của nhà cung cấp DNS của bạn, (123-reg trong trường hợp của bạn), bạn cần tạo bản ghi CNAME để ánh xạ www.example.com với www.example.com.s3-website-us-east-1.amazonaws.com

CNAME là thứ duy nhất bạn cần nếu bạn chỉ muốn có www.example.com. Hầu hết mọi người cũng muốn "example.com" hoạt động vì vậy chúng tôi cần một bước nữa.

example.com thường được gọi là miền rỗng hoặc bản ghi đỉnh của miền. Lý do nó có vấn đề là nó không thể là CNAME. CNAME chỉ hoạt động trên các tên miền phụ như "www." Điều này làm cho việc chỉ vào s3 trở nên khó khăn hơn.

Cách tiếp cận thông thường là sử dụng một dịch vụ để tự động chuyển hướng bất kỳ yêu cầu nào đến example.com để trỏ đến www.example.com. Thao tác này sau đó sẽ nhận bản ghi CNAME của bạn và trang web của bạn sẽ được phục vụ từ s3.

Không thể tự động chuyển hướng với DNS cũ thuần túy, vì vậy bạn phải sử dụng dịch vụ khác. Một số nhà cung cấp DNS cung cấp dịch vụ này cùng với DNS của họ (godaddy thì có, amazon route53 thì không. Không chắc về 123-reg)

Nếu nhà cung cấp DNS của bạn không làm điều đó, có một số dịch vụ miễn phí. Một mà tôi đã sử dụng là http://wwwizer.com/naked-domain-redirect - nó không yêu cầu bất kỳ đăng ký hoặc thanh toán nào.

Để sử dụng loại dịch vụ này, bạn cần tạo bản ghi DNS "A" cho miền rỗng của mình. Đối với dịch vụ wwwizer.com, bạn cần tạo một bản ghi A để trỏ example.com tới 174.129.25.170. Đó là tất cả!

Vì vậy, với thiết lập này, nếu người dùng nhập example.com vào trình duyệt của họ, điều sau sẽ xảy ra:

  1. Truy vấn DNS: example.com -> 174.129.25.170 (dịch vụ của wwwizer.com)
  2. Yêu cầu HTTP tới 174.129.25.170 cho example.com
  3. 174.129.25.170 chuyển hướng example.com -> www.example.com
  4. Truy vấn DNS: www.example.com -> CNAME tới www.example.com.s3-website-us-east-1.amazonaws.com
  5. Truy vấn DNS: www.example.com.s3-website-us-east-1.amazonaws.com -> trỏ đến Amazon S3
  6. Yêu cầu HTTP cho www.example.com hiện được cung cấp bởi Amazon S3

Thưởng thức!


2
Cảm ơn rất nhiều vì sự rõ ràng của tất cả những điều đó! Tôi đã thực hiện các thay đổi, chỉ cần đợi nó phù hợp, các ngón tay vượt qua mọi thứ sẽ hoạt động.
Merlin Mason

hmmm, có vẻ như vẫn không hoạt động. Đây là màn hình của cấu hình DNS - cl.ly/CP6U Dấu chấm ở cuối có vẻ đáng ngờ, tôi đã không thêm nó vào đó và việc đưa URL đó vào trình duyệt có dấu chấm ở cuối khiến tôi gặp lỗi không liên quan. Tôi đã thử xóa nó, nhưng nó quay lại sau khi tôi lưu và tôi đã thử thay thế nó bằng dấu / nhưng sau đó tôi gặp lỗi không hợp lệ. Bạn có nghĩ rằng đây có thể là một vấn đề khi kết thúc 123-regs?
Merlin Mason

Xin chào Merlin, tôi đã thử tra cứu tên miền của bạn (wpfill.me) và tôi không thấy bất kỳ bản ghi nào trong ảnh chụp màn hình của bạn. 123-reg có bước "xuất bản" hoặc "cam kết" riêng không? Có vẻ như cấu hình của bạn không có hiệu lực.
secretmike

Rất tiếc, tôi nghĩ chắc chắn có vấn đề với 123-reg, tôi đã thử đặt lại các bản ghi DNS và đợi 48 giờ để nó phổ biến và vẫn không vui. Sau đó, tôi đã chuyển dịch vụ lưu trữ DNS sang Cloudflare và đã thiết lập và chạy toàn bộ trong 20 phút :) Cảm ơn sự giúp đỡ của bạn, thực sự đánh giá cao!
Merlin Mason


1

Tôi tin rằng bạn phải chọn tất cả tài liệu trong nhóm của mình, nhấp chuột phải và chọn "Đặt ở chế độ công khai". Bạn cũng phải làm điều này mỗi khi có gì đó thay đổi trong thùng. Sau đó, tôi thường nhấp chuột phải vào thùng, chọn thuộc tính, chọn quyền trong ngăn bên phải, sau đó thêm "Mọi người với tư cách là" người được cấp "rồi chỉ cấp cho họ quyền" danh sách ". Phần còn lại của bài viết của bạn là tuyệt vời. Phần về miền trống đã giúp Tôi giải quyết các vấn đề của mình. Bạn cũng có thể có miền rỗng được chuyển hướng đến miền www trong S3 trong "Lưu trữ trang web tĩnh" Đây có lẽ là cách dễ nhất. Một lần nữa, xin cảm ơn sự giúp đỡ của bạn.

Tim


3
Bước thủ công này là không cần thiết nếu bạn áp dụng chính sách nhóm như được mô tả ở trên.
tooluser,

1

Cập nhật 2019

Kể từ hôm nay, cài đặt DNS sau đã hoạt động giúp tôi có được trang web tĩnh AWS S3 hoạt động:

Cài đặt DNS cho ánh xạ nhóm


0

Từ màn hình DNS nâng cao trên bảng điều khiển 123-reg của bạn

  • Tôi bắt đầu bằng cách nhấp vào nút "Đặt lại DNS" về cài đặt 123-reg mặc định.

Điều này đã cho tôi những điều sau đây;

DNS EntryType       PriorityTTLDestination/Target
*                 A                                 81.xx.xx.xx              
@               A                                 81.xx.xx.xx              
@               MX          10               xx0.123-reg.co.uk
@               MX          20               xx1.123-reg.co.uk

  • Sau đó tôi đã thêm mục này

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

Từ pdf hướng dẫn Quản lý DNS của họ họ, nó cho biết "bản ghi @" đề cập đến "miền của bạn ở dạng thuần túy nhất không có miền phụ" tức là miền rỗng stackoverflow.com

Nhưng nó không đề cập đến "* record" là gì, tôi cho rằng nó sẽ bắt tất cả các tên miền phụ và nghĩ rằng nó có thể vượt quá bản ghi CNAME nhưng điều này dường như không đúng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.