Pembaruan (28 Agustus 2012): Saya sekarang cenderung menggunakan haproxyctl saat ini, yang menggunakan metode yang dijelaskan di bawah ini.
Saya telah memperbaikinya setelah melakukan sedikit penelitian, untuk orang lain dengan masalah yang sama: -
Anda dapat menambahkan soket unix di konfigurasi Anda, kemudian berinteraksi dengan itu ( berikut adalah perintah yang mungkin ).
Untuk mengatur:
sudo nano /etc/haproxy/haproxy.cfg
Di bagian 'global' Anda, tambahkan:
stats socket /etc/haproxy/haproxysock level admin
Mulai ulang daemon haproxy Anda (mis. sudo service haproxy restart
)
Sekarang Anda perlu socat (jika Anda tidak memilikinya, hanya apt-get install socat
di Ubuntu).
Sekarang yang perlu Anda lakukan adalah menjalankan perintah ini untuk menghapus simpul:
echo "disable server yourbackendname/yourservername" | socat stdio /etc/haproxy/haproxysock
Untuk mengaktifkannya ganti disable dengan mengaktifkan pada perintah di atas.
socat /var/run/haproxy.stat stdio
untuk setiap perintah tunggalJika Anda hanya memiliki akses ke netcat (
nc
), Anda dapat menggunakannya untuk berinteraksi dengan file socket HAProxy dengan cara yang serupasocat
.Untuk menonaktifkan server:
Berhati-hatilah untuk memastikan bahwa file soket memiliki tingkat akses yang sesuai untuk melakukan hal di atas. Terutama sesuatu seperti ini:
Kalau tidak, Anda akan mendapatkan izin yang ditolak kesalahan:
Referensi
sumber
Cara mudahnya adalah:
1 - Konfigurasikan server web Anda untuk mengembalikan kode 503 jika ada file bernama maintenance.html (misalnya). Dengan apache Anda dapat melakukannya sebagai berikut:
2 - Konfigurasikan backend haproxy Anda untuk memeriksa URL alih-alih hanya memeriksa port sebagai berikut:
3 - Mulai ulang server web Anda dan muat penyeimbang.
4 - Tempatkan server web Anda dalam mode pemeliharaan.
5 - Hapus server web Anda dari mode pemeliharaan.
sumber
Anda juga dapat sementara "menghapus" halaman pemeriksaan kesehatan dari satu server, untuk mendapatkan titik akhir turun dan kemudian menerbitkan aplikasi Anda.
sumber
Jika Anda memiliki debian, readline tidak berfungsi, netcat adalah pilihan yang lebih baik untuk interaktif:
Non Interaktif:
sumber