Saya menggunakan nginx dan NginxHttpUpstreamModule untuk loadbalancing. Konfigurasi saya sangat sederhana:
upstream lb {
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}
server {
listen 89;
server_name localhost;
location / {
proxy_pass http://lb;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Tetapi dengan konfigurasi ini, ketika salah satu dari 2 server backend sedang down, nginx masih merutekan permintaan ke sana dan mengakibatkan separuh waktu habis :(
Apakah ada solusi untuk membuat nginx untuk secara otomatis merutekan permintaan ke server lain ketika mendeteksi server yang jatuh.
Terima kasih.
nginx
load-balancing
cluster
failover
robinmag
sumber
sumber
Hei, silakan lihat wiki: http://wiki.nginx.org/NginxHttpUpstreamModule#server
Pada dasarnya jika kegagalan terdeteksi, backend akan ditandai sebagai turun selama x detik dan itu akan mencoba lagi. Jadi jika Anda terus melihat koneksi, mungkin nginx yang terus memeriksa apakah backend telah tersedia.
Akan tetapi, seharusnya mencoba entri berikutnya di blok hulu, jadi Anda seharusnya tidak benar-benar melihat bahwa tidak ada backend tersedia jika hanya satu yang turun.
sumber