ฉันมีไฟล์กำหนดค่า NGINX ต่อไปนี้:
เซิร์ฟเวอร์ {
server_name devices.example.org;
ssl_protocols TLSv1.2;
ssl_certificate /etc/ssl/web/example.crt;
ssl_certificate_key /etc/ssl/web/example.key;
ตำแหน่ง ~* ^/(.*)(.*)?$ {
proxy_pass http://$1.proxy.tv$2;
ปิด proxy_buffering;
proxy_set_header โฮสต์ $http_host;
proxy_set_header X-Real-IP $remote_addr;
}
และฉันต้องพร็อกซีคำขอที่เข้ามาทั้งหมดไปยังแบ็กเอนด์ที่แสดง เช่น
https://devices.example.org/m123
ควรมอบฉันทะให้ http://m123.proxy.tv
https://devices.example.org/m123/favicon.ico
ควรมอบฉันทะให้ http://m123.proxy.tv/favicon.ico
https://devices.example.org/m123/scripts/something.js?params=bar
ควรมอบฉันทะให้ http://m123.proxy.tv/scripts/something.js?params=bar
อย่างไรก็ตาม ฉันมักจะได้รับ เกตเวย์ไม่ดี ข้อผิดพลาดเป็นการส่งคืน และฉันได้รับในบันทึก:
[ข้อผิดพลาด] 18643#0: *12393 favicon.ico.proxy.tv ไม่สามารถแก้ไขได้ (3: ไม่พบโฮสต์)
ฉันคิดว่า regex ของฉันมีรูปแบบคำขอพร็อกซีที่ไม่ถูกต้อง แต่ฉันไม่แน่ใจว่าจะทำอย่างไร
ชุดค่าผสมอื่น ๆ ที่ฉันได้ลอง:
ตำแหน่ง ~* ^/(.*)(?:/(.*))$
ใกล้กับ http://$1.proxy.tv/$2$is_args$args
ตำแหน่ง ~* ^/(.*)(?:/(.*))?
ใกล้กับ http://$1.proxy.tv/$2$is_args$args
ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก