ฉันใช้ NGINX ในสถานการณ์ reverse proxy อย่างง่าย โดยปกติจะมีตัวแปรสำหรับกำหนดชื่อโฮสต์ เพื่อไม่ให้เริ่มต้นล้มเหลวหากโฮสต์ไม่พร้อมใช้งาน
นี่คือสิ่งที่ฉันพบ:
ด้วยการกำหนดค่าการรับส่งข้อมูลนี้จะใช้พร็อกซี แต่หน้าเว็บแสดงผลไม่สมบูรณ์ ดูเหมือนว่าไลบรารี่ .js บางตัวไม่โหลด
ตัวแก้ไข 192.168.86.1 ถูกต้อง=30s ipv6=ปิด;
ตำแหน่ง /กล้อง/ {
ตั้ง $motion01 motion01;
proxy_set_header โฮสต์ $host;
proxy_pass http://$motion01.lan/;
ถ้าฉันลบ ipv6=off แบบนี้ ฉันจะได้รับเกตเวย์ที่ไม่ถูกต้อง 502 และข้อผิดพลาดแสดง "โฮสต์ไม่ได้รับการแก้ไข":
ตัวแก้ไข 192.168.86.1 ถูกต้อง = 30 วินาที;
ตำแหน่ง /กล้อง/ {
ตั้ง $motion01 motion01;
proxy_set_header โฮสต์ $host;
proxy_pass http://$motion01.lan/;
แต่ถ้าฉันเปลี่ยนไปใช้ชื่อโฮสต์ตามตัวอักษรแทนที่จะเป็นตัวแปร มันจะทำงานได้อย่างสมบูรณ์:
ตั้ง $motion01 motion01;
proxy_set_header โฮสต์ $host;
#proxy_pass http://$motion01.lan/;
proxy_pass http://motion01.lan/;
ฉันไม่ต้องการใช้ชื่อโฮสต์ตามตัวอักษรเนื่องจาก nginx จะไม่เริ่มทำงานหากโฮสต์ไม่พร้อมใช้งานในเวลาเริ่มต้น แต่ฉันไม่สามารถเข้าใจได้ว่าเกิดอะไรขึ้นกับการกำหนดค่านี้
ฉันได้ลองใช้ IP6 ที่เปิดใช้งานและปิดใช้งานบนเซิร์ฟเวอร์ และด้วยการรวมและไม่รวม
ฟัง [::]:443 ssl;
คำสั่งทั้งหมดไม่มีประโยชน์ นี่ไม่ใช่ปัญหาของ nginx เวอร์ชันก่อนหน้า (จำไม่ได้ว่าเคยใช้เวอร์ชันใด) แต่ตอนนี้เป็นเวอร์ชัน 1.14.2.2
ยินดีต้อนรับข้อเสนอแนะใด ๆ และทั้งหมด!