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 อื่นใดที่จะแทนที่ไฟล์นี้ ฉันได้แก้ไขปัญหานี้ทั้งคืนและไม่มีอะไรทำงาน เหนื่อยจัง ทำไงดี? เพื่อนของฉันทำสำเร็จแล้ว และคำแนะนำของพวกเขาไม่ได้ผล
ฉันได้อ่านคำถามที่คล้ายกันอื่น ๆ มากมายและไม่ได้ผล นี่คือรายการ: