Wildcard Subdomain (* .example.com) พร้อม Amazon Route53 DNS และ S3


12

ฉันกำลังโฮสต์เว็บไซต์คงที่โดยใช้ Amazon Route53 สำหรับ DNS และ S3 สำหรับไฟล์ html มันทำงานได้ดี

การตั้งค่าปัจจุบันคือ:

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

(หมายเหตุ: example.com และ www.example.com เป็นที่เก็บ S3 ไฟล์ HTML ของฉันอยู่ในที่ฝากข้อมูล example.com)

ตอนนี้ฉันต้องการเพิ่มโดเมนย่อยไวด์การ์ดเช่นนี้ - นี่คือสิ่งที่ฉันพยายาม:

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

ความคิดคือการมีอะไร example.com เพื่อแก้ไขอย่างถูกต้องกับเว็บไซต์ แต่นี่ดูเหมือนจะไม่ทำงาน ดังนั้นเมื่อฉันไปที่เว็บไซต์: joker.example.com ฉันเห็นข้อความแสดงข้อผิดพลาดบนเบราว์เซอร์:

Code: NoSuchBucket
Message: The specified bucket does not exist
BucketName: joker.example.com

คำตอบ:


10

คำตอบ @ edvinas.me ถูกต้อง คุณต้องสร้างการกระจายแบบคลาวด์ฟรอนท์สำหรับที่เก็บข้อมูลของคุณ

เมื่อคุณสร้างการแจกแจงแบบคลาวด์ให้ตั้งค่าตัวเลือกชื่อโดเมนอื่นเป็น * .example.com

จากนั้นใช้ URL หน้า Cloudfront เช่น d3lt3rsz2leycm.cloudfront.net

ตอนนี้คุณสามารถเพิ่มโดเมนย่อยไวด์การ์ดเช่นนี้:

*.example.com. CNAME  3lt3rsz2leycm.cloudfront.net.    

และควรได้ผล


1

Amazon S3 ใช้ชื่อโฮสต์เพื่อกำหนดชื่อฝากข้อมูล

- http://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html

ชื่อโฮสต์เป็นตัวพิมพ์เล็กของค่าที่ส่งโดยเบราว์เซอร์ในHost:ส่วนหัว ไม่มีวิธีกำหนดค่าที่ฝากข้อมูลเพื่อตอบกลับชื่อโฮสต์หลายชื่อ

มีบางวิธีที่จะทำให้สำเร็จนี้ขึ้นอยู่กับสิ่งที่คุณพยายามทำ แต่มันจะต้องใช้อินสแตนซ์ EC2 ที่เรียกใช้ HAProxy, วานิช, Apache หรือสิ่งที่คล้ายกันเพื่อตอบสนองต่อการร้องขอชื่อโฮสต์ตัวแทนด้วยการเปลี่ยนเส้นทางไป เขียนแถบที่อยู่ของเบราว์เซอร์ไปยังชื่อโฮสต์ / ฝากข้อมูลจริงหรือลบล้างส่วนหัวคำขอและพร็อกซีคำขอ S3 ซึ่งไม่มีประสิทธิภาพเท่าที่ควรเนื่องจากไม่มีการถ่ายโอนข้อมูลระหว่าง S3 และ EC2 ภายในเดียวกัน ภูมิภาคและเวลาแฝงอยู่ในระดับต่ำ


1

S3 Bucket ของคุณได้รับการกำหนดค่าให้ยอมรับเฉพาะคำขอสำหรับ example.com (และ / หรือ www.example.com) คุณไม่สามารถกำหนดค่าที่เก็บข้อมูลของคุณให้ยอมรับหรือโดเมนย่อยเฉพาะที่คุณต้องการใช้งานได้

วิธีเดียวที่คุณสามารถทำสิ่งนี้ได้คือใช้บริการภายนอกเช่น Cloudfront http://aws.amazon.com/cloudfront/ซึ่งจะทำหน้าที่ร้องขอ

คำตอบของ Michael (sqlbot) ดูเหมือนว่าจะครอบคลุมในรายละเอียดเพิ่มเติม


3
ทำอย่างไร - เป็นคำถามตัวเอง
Jasper

เนื่องจากไม่รองรับการกำหนดค่าคุณจึงต้องใช้บริการภายนอกสำหรับสิ่งนั้น
phoops
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.