4
เปลี่ยนเส้นทางคำขอ HTTP ทั้งหมดที่อยู่เบื้องหลัง Amazon ELB เป็น https โดยไม่ต้องใช้หาก
ขณะนี้ฉันมี ELB ให้บริการทั้งhttp://www.example.orgและhttps://www.example.org ผมอยากจะตั้งขึ้นเพื่อชี้คำขอใด ๆ ที่จะhttp://www.example.orgคือการเปลี่ยนเส้นทางไปhttps://www.example.org ELB ส่งคำขอ https เป็นคำขอ http ดังนั้นการใช้: server { listen 80; server_name www.example.org; rewrite ^ https://$server_name$request_uri? permanent; } จะไม่ทำงานเนื่องจากคำขอที่ส่งไปยังhttps://www.example.orgจะยังคงถูกส่งไปยังพอร์ต 80 บน nginx ฉันรู้ว่าเป็นไปได้ที่จะเขียนใหม่เป็น server { listen 80; server_name www.example.org; if ($http_x_forwarded_proto != "https") { rewrite ^(.*)$ https://$server_name$1 permanent; } } แต่ทุกสิ่งที่ฉันได้อ่านบอกว่าifควรหลีกเลี่ยงค่าใช้จ่ายทั้งหมดภายในการกำหนดค่า nginx และนี่จะเป็นสำหรับทุกคำขอเดียว นอกจากนี้ยังหมายความว่าฉันต้องตั้งค่าการแยกต่างหากเป็นพิเศษสำหรับการตรวจสุขภาพ ( …