หลังจากการทดสอบและ Google หลายชั่วโมง ฉันได้วิธีแก้ไขแล้ว มีอย่างอื่นที่คล้ายคลึงกัน แต่ไม่มีเลยที่ตรงกับสิ่งที่ฉันพยายามทำ นี่คือสิ่งที่ฉันทำเพื่อให้มันใช้งานได้
ก่อนอื่นฉันสร้างแมปตัวแปรที่ตั้งค่าตามเงื่อนไขตามค่า $http_referer ที่อยู่ภายใน NGINX
แผนที่ $http_referer $resources_location {
เริ่มต้น "url.com";
"~*/page2" "url2.com";
"~*/page3" "url2.com";
}
สิ่งนี้ใช้ตัวแปร $http_referer และตั้งค่าตัวแปร $resources_location ตามค่าของ $http_referer
ค่าเริ่มต้นคือ URL หลัก จากนั้นฉันมีนิพจน์ regex เพื่อพิจารณาว่าหน้านั้นมี /page2, /page3 อยู่ในนั้น
สิ่งหนึ่งที่ฉันคิดว่าคือ https://url.com/page2 จะเรียกมันก็จะเป็นเช่นนั้น https://url.com/sub/page2. ฉันไม่จำเป็นต้องกังวลเกี่ยวกับเรื่องนี้ แต่อย่างใดอย่างหนึ่งดังนั้นฉันจะทดสอบด้วย
จากนั้นฉันใช้ตัวแปรใหม่ที่ตั้งค่าในพร็อกซี
ตำแหน่ง /sites/default/files/ {
proxy_set_header โฮสต์ $resources_location;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_pass https://${resources_location};
}
ฉันเป็นมือใหม่สำหรับ NGINX ดังนั้นหากมีอะไรที่สามารถทำได้ดีกว่านี้ บอกฉันได้เลย!!