ฉันดิ้นรนเป็นเวลา 3 วันกับพร็อกซีย้อนกลับของ Nginx เพื่อให้รู้ว่าฉันคิดว่าเป็นเรื่องง่าย
ฉันต้องเข้าถึงแอปพลิเคชัน backend node-red (nodeJS) จำนวนมากจาก Nginx แต่ต้องมีพอร์ตต่างกันเสมอ
ต่อไปนี้คือตัวอย่างของฉัน:
เว็บไคลเอนต์ -> `https://ip_adr/1881/ui/` -> Nginx proxy_pass `http://127.0.0.1:1881/ui/` (แอป)
แอปแบ็กเอนด์ให้บริการรูปภาพ http://127.0.0.1:1881/*.jpg
- ฉันตระหนักถึงการทดสอบแบบคงที่ด้วย:
ที่ตั้ง / {
#proxy_pass http://127.0.0.1:1881;
}
https://ip_adress/ui
ในเบราว์เซอร์ของฉันทำงานได้ดีกับรูปภาพแอปทั้งหมด
ด้วยการเขียนซ้ำเพื่อส่งต่อพอร์ตจากส่วนหน้าไปยังส่วนหลังแบบไดนามิก:
ตำแหน่ง ~ ^/(?<พอร์ต>\d\d\d\d) {
เขียนใหม่ "^/\d{4}/(.*)" /$1 ตัวแบ่ง;
proxy_pass http://127.0.0.1:$port;
}
ด้วย regex ฉันจะแยกพอร์ตจาก ip_adr/1881 ด้วย /(?<พอร์ต>\d\d\d\d)
และเขียน url ใหม่โดยไม่ใช้ /1881
แต่การรักษาในที่สุด /path1/path2/...
ถ้าฉันใส่ https://192.168.x.x/1881/ui/
ในเบราว์เซอร์ของฉันทุกอย่างดี แต่ไม่มีรูปภาพ
หลังจากการทดสอบหลายครั้งและหลายครั้ง เบราว์เซอร์ของฉันไม่แสดงรูปภาพใดๆ และบันทึกข้อผิดพลาดในการติดตามบอกว่าฉันสำหรับรูปภาพทั้งหมด :
2022/03/10 01:01:36 [ข้อผิดพลาด] 50065#50065: *1224 open() "/usr/share/nginx/html/schema_fire_EEU.jpg" ล้มเหลว (2: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว), ไคลเอ็นต์: 192.168 .1.29, เซิร์ฟเวอร์: exemple3.test.fr, คำขอ: "GET /schema_fire_EEU.jpg HTTP/1.1", โฮสต์: "192.168.1.53", ผู้อ้างอิง: "https://192.168.1.53/1881/ui/"
นั่นเป็นเรื่องเหลือเชื่อมากถ้าฉันใส่ https://192.168.x.x/1881/schema_fire_EEU.jpg
ฉันสามารถแสดงภาพนี้ !!!
ฉันคิดว่ามีปัญหากับ slash ...
ใครก็ได้ช่วยฉันที ?
ขอให้เป็นวันที่ดี ;-)