ฉันกำลังพยายามตั้งค่า docker swarm โดยที่ NGINX ใช้สำหรับโหลดบาลานซ์ของโหนด swarm
นักเทียบท่าฝูง init --advertise-addr 192.168.99.153
นอกจากนี้ฉันยังเพิ่มโหนดทั้งสองเป็นฝูง
ฝูงนักเทียบท่าเข้าร่วม --token SWMTKN-99-31eka5srtjyvajsbiusixh6gil8p6xuk6yejfts4co8voxu8op-a8awcomh58de8d0ofkckqnsud 192.168.99.153:2377
ตอนนี้ฉันสร้างบริการบนโหนดผู้จัดการโดยใช้
บริการนักเทียบท่าสร้าง - ชื่อแบ็กเอนด์ - จำลอง 2 - เผยแพร่ 8080:80 tomcat
ฉันทดสอบแมวตัวผู้บนเบราว์เซอร์ node1/node2 โดย 192.168.99.153:8080 / 192.168.99.154:8080 และฉันสามารถเห็นหน้า Landing Page ของแมวตัวผู้
ตอนนี้ฉันตั้งฝูงแยกต่างหากบน โหนดที่ 3 สำหรับ Loadbalancer NGINX.
นักเทียบท่าฝูง init --advertise-addr 192.168.99.156
หลังจากนี้สร้างไฟล์ Nginx conf
sudo mkdir -p /data/loadbalancer
sudo vi /data/loadbalancer/default.conf
และเพิ่มบรรทัดต่อไปนี้ในไฟล์นี้
เซิร์ฟเวอร์ {
ฟัง 80;
ที่ตั้ง / {
proxy_pass http://แบ็กเอนด์;
}
}
แบ็กเอนด์ต้นน้ำ {
เซิร์ฟเวอร์ 192.168.99.153:8080;
เซิร์ฟเวอร์ 192.168.99.154:8080;
}
หลังจากนี้เมื่อฉันสร้างบริการ NGINX ด้วย
บริการนักเทียบท่าสร้าง --name loadbalancer --mount type=bind,source=/data/loadbalancer,target=/etc/nginx/conf.d --publish 80:80 nginx
เมื่อฉันเปิดตัว 192.168.99.156:80 บนเบราว์เซอร์ ฉันเห็น 502 เกตเวย์เสีย หน้าข้อผิดพลาด
คำถาม:-
บางครั้งเซิร์ฟเวอร์ Tomcat ไม่สามารถเข้าถึงได้หลังจากสร้างบริการแบ็กเอนด์
ทำไม Tomcat ถึงไม่ใช้ NGINX load balancer?