ทำไม proxy_pass http://backends/;
ภายใต้สถานที่ /textcat
พาฉันไปที่รูทของเซิร์ฟเวอร์ (localhost:8081
) และ proxy_pass http://backends;
(ไม่ต่อท้าย /) นำฉันไป (ดูเหมือน) localhost:8081/textcat
.
ฉันกำลังพยายามโฮสต์สองแอปพลิเคชันที่ทำงานในเครื่องบนเซิร์ฟเวอร์ แอปพลิเคชันทั้งสองนี้กำลังทำงานบนพอร์ต 8081
และ 8082
. ฉันต้องการเข้าถึงแอปที่ 8081
ผ่านทาง /textcat
ที่ตั้งและ 8082
ทาง /เนอร์
. ฉันสามารถทำได้ด้วยการกำหนดค่าด้านล่าง แต่ฉันไม่ค่อยเข้าใจว่าเหตุใดจึงใช้งานได้
แบ็กเอนด์ต้นน้ำ {
เซิร์ฟเวอร์ localhost:8081; # เปลี่ยนเป็นพอร์ตที่ webapp กำลังฟังอยู่
}
แบ็คเอนด์อัปสตรีม_NER {
เซิร์ฟเวอร์ localhost:8082; # เปลี่ยนเป็นพอร์ตที่ webapp กำลังฟังอยู่
}
เซิร์ฟเวอร์ {
ฟัง 443 ssl;
ชื่อเซิร์ฟเวอร์ "";
...เรื่อง SSL...
สถานที่ = /textcat {
proxy_pass http://backends/;
}
ตำแหน่ง /ner {
proxy_pass http://backends_NER/;# ดูเหมือนว่าจะใช้งานได้เนื่องจากมีเครื่องหมายทับ เนื่องจาก http_referrer เป็น /ner เส้นทางพร็อกซีของเราจึงต้องมี /
}
# ต้องเปลี่ยนเส้นทางตามคำขอตำแหน่งใด ๆ และถ้าผู้อ้างอิงคือ /textcat do localhost:8081
ที่ตั้ง / {
ถ้า ($http_referer ~* (/textcat) ) {
proxy_pass http://localhost:8081;
}
ถ้า ($http_referer ~* (/ner) ) {
proxy_pass http://localhost:8082;
}
}
}