ฉันพบปัญหาเดียวกันกับที่ Saurav อธิบาย แต่ฉันต้องการค้นหาวิธีแก้ปัญหาที่ไม่ต้องการสิ่งอื่นนอกจาก Route 53 และ S3 ฉันสร้างคู่มือวิธีการสำหรับบล็อกของฉันโดยละเอียดสิ่งที่ฉันทำ
นี่คือสิ่งที่ฉันมาด้วย
วัตถุประสงค์
ใช้เฉพาะเครื่องมือที่มีอยู่ใน Amazon S3 และ Amazon Route 53 สร้าง URL Redirect ที่ส่งต่อโดยอัตโนมัติhttp://url-redirect-example.vivekmchawla.comไปยังหน้าลงชื่อเข้าใช้ของคอนโซล AWS ที่ใช้นามแฝงเป็น "MyAccount" ซึ่งอยู่ที่https :
คู่มือนี้จะสอนให้คุณตั้งค่าการส่งต่อ URL ไปยัง URL ใด ๆ ไม่ใช่เฉพาะจาก Amazon คุณจะได้เรียนรู้วิธีตั้งค่าการส่งต่อไปยังโฟลเดอร์เฉพาะ (เช่น "/ console" ในตัวอย่างของฉัน) และวิธีเปลี่ยนโปรโตคอลของการเปลี่ยนเส้นทางจาก HTTP เป็น HTTPS (หรือกลับกัน)
ขั้นตอนที่หนึ่ง: สร้าง S3 Bucket ของคุณ
เปิดคอนโซลการจัดการ S3 และคลิก "สร้างถัง"
ขั้นตอนที่สอง: ตั้งชื่อ S3 Bucket ของคุณ
เลือกชื่อถัง ขั้นตอนนี้สำคัญมาก! คุณต้องตั้งชื่อ bucket อย่างแน่นอนเหมือนกับ URL ที่คุณต้องการตั้งค่าสำหรับการส่งต่อ สำหรับคู่มือนี้ฉันจะใช้ชื่อ "url-redirect-example.vivekmchawla.com"
เลือกภูมิภาคใดก็ได้ที่เหมาะกับคุณที่สุด หากคุณไม่รู้ให้ใช้ค่าเริ่มต้น
ไม่ต้องกังวลกับการตั้งค่าการบันทึก เพียงคลิกปุ่ม "สร้าง" เมื่อคุณพร้อม
ขั้นตอนที่ 3: เปิดใช้งานการโฮสต์เว็บไซต์แบบคงที่และระบุกฎการกำหนดเส้นทาง
- ในหน้าต่างคุณสมบัติเปิดการตั้งค่าสำหรับ "การโฮสต์เว็บไซต์แบบคงที่"
- เลือกตัวเลือกเพื่อ "เปิดใช้งานการโฮสต์เว็บไซต์"
- ป้อนค่าสำหรับ "เอกสารดัชนี" วัตถุ (เอกสาร) นี้จะไม่ถูกส่งโดย S3 และคุณไม่จำเป็นต้องอัปโหลด เพียงใช้ชื่อที่คุณต้องการ
- เปิดการตั้งค่าสำหรับ "แก้ไขกฎการเปลี่ยนเส้นทาง"
วางข้อมูลโค้ด XML ต่อไปนี้ลงในทั้งหมด
<RoutingRules>
<RoutingRule>
<Redirect>
<Protocol>https</Protocol>
<HostName>myaccount.signin.aws.amazon.com</HostName>
<ReplaceKeyPrefixWith>console/</ReplaceKeyPrefixWith>
<HttpRedirectCode>301</HttpRedirectCode>
</Redirect>
</RoutingRule>
</RoutingRules>
ถ้าคุณอยากรู้เกี่ยวกับสิ่งที่ XML ที่ดังกล่าวข้างต้นจะทำแวะไปที่เอกสาร AWM สำหรับ "ไวยากรณ์สำหรับการระบุเส้นทางกฎ" เทคนิคโบนัส (ไม่ครอบคลุมที่นี่) http://redirect-destination.com/console/special-page.html
จะถูกส่งต่อไปยังหน้าเว็บที่เฉพาะเจาะจงที่โฮสต์ปลายทางเช่น อ่านเกี่ยวกับ<ReplaceKeyWith>
องค์ประกอบหากคุณต้องการฟังก์ชั่นนี้
ขั้นตอนที่ 4: จดบันทึก "ปลายทาง" ที่เปลี่ยนเส้นทางของคุณ
จดบันทึก "ปลายทาง" ของเว็บไซต์แบบคงที่ซึ่ง Amazon สร้างขึ้นโดยอัตโนมัติสำหรับที่เก็บข้อมูลนี้ คุณจะต้องใช้ในภายหลังเพื่อเน้น URL ทั้งหมดจากนั้นคัดลอกและวางลงในแผ่นจดบันทึก
ข้อควรระวัง! ถึงตอนนี้คุณสามารถคลิกที่ลิงค์นี้เพื่อตรวจสอบว่ากฎการเปลี่ยนเส้นทางของคุณถูกต้องหรือไม่ แต่ระวัง! นี่คือเหตุผล ...
สมมติว่าคุณป้อนค่าผิดภายใน<Hostname>
แท็กในกฎการเปลี่ยนเส้นทางของคุณ บางทีคุณอาจจะตั้งใจพิมพ์แทนmyaccount.amazon.com
myaccount.signin.aws.amazon.com
หากคุณคลิกลิงก์เพื่อทดสอบ URL ปลายทาง AWS จะเปลี่ยนเส้นทางเบราว์เซอร์ของคุณไปยังที่อยู่ผิดอย่างมีความสุข!
หลังจากสังเกตเห็นความผิดพลาดของคุณคุณอาจแก้ไข<Hostname>
ในกฎการเปลี่ยนเส้นทางของคุณเพื่อแก้ไขข้อผิดพลาด น่าเสียดายที่เมื่อคุณพยายามคลิกที่ลิงก์อีกครั้งคุณจะถูกนำไปสู่การเปลี่ยนเส้นทางไปยังที่อยู่ผิด! แม้ว่าคุณจะแก้ไข<Hostname>
รายการเบราว์เซอร์ของคุณกำลังแคชรายการก่อนหน้า (ไม่ถูกต้อง!) สิ่งนี้เกิดขึ้นเพราะเราใช้การเปลี่ยนเส้นทาง HTTP 301 (ถาวร) ซึ่งเบราว์เซอร์เช่น Chrome และ Firefox จะแคชตามค่าเริ่มต้น
หากคุณคัดลอกและวาง URL ปลายทางไปยังเบราว์เซอร์อื่น (หรือล้างแคชในแคชปัจจุบันของคุณ) คุณจะได้รับโอกาสอีกครั้งว่า<Hostname>
รายการที่อัปเดตของคุณนั้นถูกต้องหรือไม่
เพื่อความปลอดภัยหากคุณต้องการทดสอบ URL ปลายทางและกฎการเปลี่ยนเส้นทางของคุณคุณควรเปิดเซสชันการท่องเว็บแบบส่วนตัวเช่น "โหมดไม่ระบุตัวตน" ใน Chrome คัดลอกวางและทดสอบ URL ปลายทางในโหมดไม่ระบุตัวตนและสิ่งที่แคชจะหายไปเมื่อคุณปิดเซสชัน
ขั้นตอนที่ 5: เปิดคอนโซลการจัดการ Route53 และไปที่ชุดระเบียนสำหรับโซนที่โฮสต์ของคุณ (ชื่อโดเมน)
- เลือกโซนที่โฮสต์ (ชื่อโดเมน) ที่คุณใช้เมื่อคุณสร้างที่เก็บข้อมูลของคุณ เนื่องจากฉันตั้งชื่อ bucket ของฉัน "url-redirect-example.vivekmchawla.com" ฉันจะเลือก vivekmchawla.com Hosted Zone
- คลิกที่ปุ่ม "ไปที่ชุดบันทึก"
ขั้นตอนที่ 6: คลิกปุ่ม "สร้างชุดการบันทึก"
การคลิก "สร้างชุดบันทึก" จะเปิดหน้าต่างสร้างชุดบันทึกทางด้านขวาของคอนโซลการจัดการเส้นทาง 53
ขั้นตอนที่ 7: สร้างชุดระเบียน CNAME
ในฟิลด์ชื่อป้อนส่วนชื่อโฮสต์ของ URL ที่คุณใช้เมื่อตั้งชื่อที่ฝากข้อมูล S3 ของคุณ "ส่วนชื่อโฮสต์" ของ URL นั้นเป็นทุกอย่างที่อยู่ด้านซ้ายของชื่อโฮสต์ของโซน ฉันตั้งชื่อ S3 bucket "url-redirect-example.vivekmchawla.com" ของฉันและ Hosted Zone ของฉันคือ "vivekmchawla.com" ดังนั้นส่วนชื่อโฮสต์ที่ฉันต้องป้อนคือ "url-redirect-example"
เลือก "CNAME - ชื่อ Canonical" สำหรับประเภทของชุดบันทึกนี้
สำหรับค่าให้วาง URL ปลายทางของที่ฝากข้อมูล S3 ที่เราสร้างขึ้นในขั้นตอนที่ 3
คลิกปุ่ม "สร้างชุดบันทึก" สมมติว่าไม่มีข้อผิดพลาดคุณจะสามารถเห็นระเบียน CNAME ใหม่ในรายการ Hosted Zone ของรายการชุดระเบียน
ขั้นตอนที่ 8: ทดสอบการเปลี่ยนเส้นทาง URL ใหม่ของคุณ
เปิดแท็บเบราว์เซอร์ใหม่และพิมพ์ URL ที่เราเพิ่งตั้งค่า สำหรับผมที่http://url-redirect-example.vivekmchawla.com หากทุกอย่างทำงานถูกต้องคุณควรส่งตรงไปที่หน้าลงชื่อเข้าใช้ AWS
เนื่องจากเราใช้myaccount.signin.aws.amazon.com
นามแฝงเป็น URL ปลายทางของการเปลี่ยนเส้นทางของเรา Amazon รู้ได้อย่างแม่นยำว่าบัญชีใดที่เราพยายามเข้าถึงและนำเราไปที่นั่นโดยตรง สิ่งนี้มีประโยชน์มากหากคุณต้องการให้ลิงค์ล็อกอิน AWS สั้น ๆ ที่สะอาดและมีตราสินค้าแก่พนักงานหรือผู้รับเหมา
สรุปผลการวิจัย
ฉันชอบบริการ AWS ส่วนตัว แต่ถ้าคุณตัดสินใจโยกย้ายการจัดการ DNS ไปที่ Amazon Route 53 การขาดการส่งต่อ URL อย่างง่ายอาจทำให้คุณผิดหวัง ฉันหวังว่าคู่มือนี้จะช่วยให้การตั้งค่าการส่งต่อ URL สำหรับโซนที่โฮสต์ของคุณง่ายขึ้นเล็กน้อย
หากคุณต้องการเรียนรู้เพิ่มเติมโปรดดูหน้าต่อไปนี้จากเว็บไซต์เอกสาร AWS
ไชโย!