nginx load balancer ยังไม่ทำงานตั้งแต่เมื่อวาน ฉันเรียกใช้ microservice บนคอนเทนเนอร์ 3 docker บนพอร์ต 4001,4002,4003 บนอินสแตนซ์ WSL2 ของฉัน ซึ่งเข้าถึงผ่านเบราว์เซอร์ (sudo docker run -d -p 4003:80 --name asciiflow3 dominicbreuker/asciiflow2
). ฉันไม่ได้ติดตั้ง nginx ดังนั้นจึงมาจากคอนเทนเนอร์ nginx สร้างอิมเมจนักเทียบท่า sudo docker build -t nginx-asciiflow
สำหรับ nginx และรันด้วย sudo docker run --name nginx-asciiflow --network host -d nginx-asciiflow
เมื่อฉันเปิด http://localhost/ ฉันคาดว่าหน้าแรกของบริการจะแสดงขึ้น แต่เป็นเพียงค่าเริ่มต้นของ nginx สิ่งคือการเข้าถึง http://localhost:4001/ และสิ่งที่คล้ายกันเปลี่ยนเส้นทางไปยังหน้า microservices อย่างถูกต้อง
ไฟล์ปรับแต่งของฉันคือ
เหตุการณ์ { worker_connections 1024; }
http {
คนงานต้นน้ำ {
เซิร์ฟเวอร์ localhost:4001;
เซิร์ฟเวอร์ localhost:4002;
เซิร์ฟเวอร์ localhost:4003;
}
เซิร์ฟเวอร์ {
ฟัง 80 default_server ssl;
ที่ตั้ง / {
proxy_pass http://ผู้ปฏิบัติงาน;
proxy_set_header โฮสต์ $host;
ปิด proxy_redirect;
}
}
}
ฉันได้ลองใช้ default_server
เท่านั้นแล้วไม่มีทั้งสองอย่าง default_server ssl
. ฉันเปลี่ยนพอร์ตขาออกเป็น 8080 ฉันได้ลองขยาย url เป็น http://คนงาน/ดัชนี
และการเปลี่ยนแปลง ที่ตั้ง /
ถึง ที่ตั้ง/ดัชนี
แต่การเข้าถึง localhost/index ยังคงนำไปสู่หน้า nginx 404 เหมือนกับ ตำแหน่ง /ผู้ปฏิบัติงาน/ดัชนี/
และ https://คนงาน/ดัชนี/
. ฉันได้ลองทั้งแบบมีและไม่มี proxy_set_header
และ proxy_redirect
. ฉันแน่ใจว่าคอนเทนเนอร์ใช้พอร์ตที่ถูกต้อง (เช่น 4001:80) ตรวจสอบเครื่องหมายอัฒภาค และตรวจสอบให้แน่ใจว่า url ไม่มีเครื่องหมายทับ ฉันได้ลองดึง upstream worker และเซิร์ฟเวอร์บล็อกออก แล้วปล่อย http ไม่มีการกำหนดค่า nginx อื่นใดที่จะแทนที่ไฟล์นี้ ฉันได้แก้ไขปัญหานี้ทั้งคืนและไม่มีอะไรทำงาน เหนื่อยจัง ทำไงดี? เพื่อนของฉันทำสำเร็จแล้ว และคำแนะนำของพวกเขาไม่ได้ผล
ฉันได้อ่านคำถามที่คล้ายกันอื่น ๆ มากมายและไม่ได้ผล นี่คือรายการ: