Saya menggunakan nginx sebagai penyeimbang beban di depan contoh server web saya. Saya menjalankan 4 contoh dari server web dan menyebarkan lalu lintas secara merata menggunakan nginx. Ketika saya menggunakan versi baru - Saya mengubah nginx.conf dan menandai 2 dari 4 server pertama, kemudian restart nginx. Saya memperbarui kode server dan me-restart 2 server pertama. Kemudian saya edit nginx.conf untuk menunjukkan bahwa 2 server pertama naik dan menandai 2 lainnya turun, restart lagi nginx. Kemudian saya memperbarui dan memulai kembali dua instance lainnya. Sekali lagi perbarui nginx.conf menandai semua server dan restart akhir dari nginx.
Saya harus melakukan proses ini beberapa kali pada beberapa hari. Melakukan langkah-langkah di atas secara manual setiap kali ternyata rawan kesalahan.
Apakah ada akses terprogram ke nginx / nginx.conf sehingga saya dapat mengotomatiskan proses ini?
[Satu-satunya cara yang saya bayangkan saat ini adalah menulis langkah-langkah di atas dalam skrip shell]
fail_timeout
ke 5s pada masing-masing backend Anda, hilangkan keduanya dan NGINX akan mengambilnya dan mengalihkan semua lalu lintas ke dua node kedua. Perbarui kode Anda, tunggu 5 detik (atau berapa pun nilai batas waktu Anda) dan NGINX akan mulai menggunakan dua server pertama, lalu ambil yang kedua dan ulangi. NGINX bermain sangat baik dengan pengaturan seperti ituJawaban:
Tidak, nginx tidak memiliki API konfigurasi.
Meskipun ada beberapa kasus ketika Anda mungkin perlu menandai server secara manual sebagai down, umumnya mengkonfigurasi proxy_next_upstream + fail_timeout akan berfungsi.
sumber
Sekarang ada nginx-conf , modul NPM yang menyediakan akses terprogram ke konfigurasi nginx.
sumber