AWS เสนอวิธีในการกำหนดเส้นทางการรับส่งข้อมูล HTTPS ไปยังอินสแตนซ์ EC2 ที่ต่างกันสองรายการตามเส้นทางไดเรกทอรีหรือไม่


10

ฉันสงสัยว่าสิ่งต่อไปนี้เป็นไปได้ด้วยข้อเสนอ AWS หรือไม่

https://www.example.com/a/-> เสิร์ฟโดย Apache บนEC2 Instance A

https://www.example.com/b/-> เสิร์ฟโดย Apache บนEC2 Instance B

เพื่อชี้แจงฉันไม่ต้องการไฟล์ภายใต้เส้นทางไดเรกทอรีหนึ่งที่จะอยู่ในอินสแตนซ์เซิร์ฟเวอร์เดียวกับไฟล์ภายใต้เส้นทางไดเรกทอรีอื่น

ฉันเข้าใจว่าอาจเป็นไปได้ด้วยพร็อกซีบางประเภท แต่มีวิธีแก้ปัญหาที่ง่ายกว่าสำหรับหนึ่งในข้อเสนอ AWS

EC2 Balancer การโหลดดูเหมือนจะไม่อนุญาตให้มีการสลับขึ้นอยู่กับเส้นทางไดเรกทอรี กระบวนการผลิต 53ทำงานที่ระดับ DNS ซึ่งไม่มีข้อมูลเส้นทางเพื่อส่งคืน IP ตามนั้น


ตัวโหลดบาลานซ์ EC2 นั้นโง่มากจนไม่อ่านHost:ส่วนหัวและกรองทราฟฟิกปลอม ดูเหมือนว่าพวกเขาจะไม่เพิ่มคุณสมบัติใด ๆ เช่นที่คุณถามว่าการดูส่วนหัวทำงานได้ดีเกินไปหรือไม่ พวกเขามีทางเลือกอื่นอย่างเมตตา
ลูกไก่

คำตอบ:


29

ใช้AWS Balancer การโหลดแอพลิเคชันซึ่งจะเส้นทางตามเส้นทาง ลิงค์ที่สองนั้นคือการสอนวิธีการทำ

กล่าวโดยย่อคือคุณตั้งค่า ALB ของคุณตามปกติจากนั้นทำตามขั้นตอนเหล่านี้ (คัดลอกมาจากบทช่วยสอน AWS):

  • ในการฟังแท็บใช้ลูกศรเพื่อดูกฎระเบียบสำหรับการฟังและจากนั้นเลือกเพิ่มกฎ ระบุกฎดังนี้:

  • สำหรับชื่อกลุ่มเป้าหมายให้เลือกกลุ่มเป้าหมายที่สองที่คุณสร้าง

  • สำหรับรูปแบบเส้นทางระบุรูปแบบที่แน่นอนที่จะใช้สำหรับเส้นทางตามเส้นทาง (ตัวอย่างเช่น / img / *) สำหรับข้อมูลเพิ่มเติมดูกฎการฟัง

  • เลือกบันทึก


ขอบคุณ! ฉันเช็คเอาท์ EC2 Application Load Balancer เริ่มแรกแล้วผ่านตัวช่วยสร้าง แต่ไม่เคยสร้างขึ้นมาจริงๆ ตัวช่วยสร้างไม่ได้ให้ตัวเลือกเส้นทาง ดังที่บทช่วยสอนชี้ให้เห็นเราต้องสร้างมันขึ้นมาก่อนแล้วจึงแก้ไขกฎหลังจากนั้น
โจเซฟชิห์

9

นอกเหนือไปจากคำตอบที่ดีเยี่ยมของทิมคุณยังสามารถบรรลุนี้กับCloudFront

ก่อนอื่นให้สร้างการกระจายของคุณเพิ่มต้นกำเนิดสำหรับ EC2 Instance A และ EC2 Instance B (ซึ่งอาจเป็น load balancer โฮสต์ที่ไม่ใช่ AWS หรือ S3 buckets)

จากนั้นตั้งค่ากฎการทำงานแคชเพื่อแม็พ / a / * และ / b / * กับต้นกำเนิดที่เหมาะสม

ไม่ว่าจะเหมาะสมหรือไม่ที่จะใช้ CloudFront สำหรับวัตถุประสงค์นี้จะขึ้นอยู่กับแอปพลิเคชันของคุณและจำเป็นต้องใช้ CDN


4
สิ่งนี้อาจนำไปใช้หากคุณต้องการ/a*และ/b*ได้รับการจัดการโดยบริการที่แตกต่างกันบัญชีที่แตกต่างกันภูมิภาคที่แตกต่างกันหรือแม้แต่เส้นทางเดียวที่จัดการโดยบางสิ่งที่ทำงานภายใน AWS และที่อื่น ๆ CloudFront มีหลายกรณีการใช้งานที่ไม่จำเป็นต้องใช้แนวคิด CDN เลย
Michael - sqlbot
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.