Jeffrey Cross
Jeffrey Cross

Zero downtime server restart dengan HAProxy

HAProxy adalah ketersediaan tinggi, alat penyeimbang beban HTTP berasaskan perisian yang saya telah melihat mendapat banyak daya tarikan dalam kluster pelayan besar dan persekitaran pengkomputeran awan. Pada masa ini, saya menggunakannya sebagai sebahagian daripada imej yang telah dibina sebelum ini, yang mana penjual pihak ketiga mengekalkan, dan prestasi itu memunculkan saya dengan cukup bahawa saya mula meneliti keupayaannya lagi. Kerana ia merupakan penyelesaian perisian, ia memberi anda banyak fleksibiliti untuk menyesuaikan konfigurasi itu.

Salah satu ciri kemas yang saya jumpai adalah konfigurasi yang akan membolehkan anda untuk but semula pelayan dalam kelompok tanpa pengguna tunggal yang mengalami sesi 404 kesilapan, turun waktu, atau hilang. Caranya adalah dengan menggunakan peraturan iptables untuk memberikan Apache kepada dua pelabuhan, katakan 80 dan 81. Apache benar-benar berjalan pada port 80, dan kemudian pelabuhan 81 dikonfigurasi untuk maju ke port 80. HAProxy kemudian dikonfigurasikan untuk menggunakan port pelayan aplikasi 81, dan pelayan yang sama pada port 80 ditakrifkan sebagai sandaran panas.

Blog igvita.com mempunyai cara yang baik untuk melakukan perkara ini:

Daripada menentukan pelayan aplikasi yang berbeza secara fizikal, kami akan menentukan contoh sandaran kami sebagai pelayan aplikasi yang sama pada setiap kes, tetapi dengan satu perbezaan kecil: port status, untuk pelayan aplikasi utama akan berbeza daripada yang kami gunakan pada sandaran.

Sekarang, jika kita mahu meletakkan pelayan dalam mod penyelenggaraan, kita keluarkan peraturan IPTables untuk port diteruskan dan tunggu beberapa saat supaya contoh HAProxy huluan kita mengenali bahawa pelayan tidak lagi tersedia untuk sambungan baru - ini adalah kunci, ia bermakna bahawa tiada pelanggan dijatuhkan dalam proses tersebut. Sekarang, sebaik sahaja pelayan keluar dari putaran dalam HAProxy, kita boleh melakukan restart yang anggun, tambahkan peraturan IPTables kembali, dan kita hidup!

Apa yang keren ialah tanpa sebarang konfigurasi semula pada proksi, anda boleh tarik mesin di luar talian dengan anggun. Anda hanya melumpuhkan port iptables ke hadapan, HAProxy akan melihat bahawa port 81 pergi offline dan mula menghantar pengguna sedia ada ke port 80 dengan kuki semasa mereka. Pada kenyataannya, ia adalah contoh Apache yang sama, jadi semua maklumat sesi tetap utuh. Sesi baru semua akan dihantar ke pelayan lain anda, dan anda boleh menunggu sehingga tiada siapa yang tinggal menggunakan mesin mod penyelenggaraan sebelum mengambilnya di luar talian.

HAProxy Zero-Downtime Restart dengan Dokumentasi HAProxy Rasmi HAPRoxy (lihat bahagian 4.2, hentikan penggunaan server sandaran)

Kongsi

Meninggalkan Komen