Load-balancing adalah amalan yang paling biasa untuk menyebarkan trafik web masuk di antara beberapa pelayan belakang. Ini menjadikan aplikasi sangat tersedia walaupun sebilangan pelayan dimatikan kerana beberapa sebab. Load Balancing meningkatkan kecekapan dan kebolehpercayaan aplikasi web. Pengimbang beban HAProxy digunakan untuk tujuan yang sama. Ia adalah pengimbang beban yang paling banyak digunakan dalam industri. Seperti di laman web rasmi, HAProxy digunakan oleh syarikat terkemuka seperti AWS, Fedora, Github, dan banyak lagi.
HAProxy atau Proksi Ketersediaan Tinggi memberikan ketersediaan dan penyelesaian proksi yang tinggi. Ia ditulis dalam C dan berfungsi pada lapisan rangkaian dan aplikasi model TCP / IP. Yang terbaik ialah ia mempunyai edisi komuniti percuma, dan ia adalah aplikasi sumber terbuka. Ia berfungsi pada sistem operasi Linux, FreeBSD, dan Solaris. Edisi perusahaan juga ada, tetapi ia mempunyai tanda harga.
Dalam panduan ini, kita akan melihat Cara Memasang HAProxy dan Konfigurasikan Load Balancing Server pada Debian 10.
Prasyarat:
- "Sudo" akses ke semua mesin dan pengetahuan asas tentang menjalankan perintah di terminal Linux.
- Alamat IP peribadi ditambahkan ke pelayan load-balancer dan backend.
- Sistem Operasi Debian 10 dipasang pada semua mesin.
Memasang HAProxy pada Debian 10
Untuk panduan kami, kami akan menganggap konfigurasi alamat IP berikut:
- Pengimbang beban HAProxy 10.0.12.10
- Pelayan web1: Alamat IP: 10.0.12.15
- Pelayan web2: Alamat IP: 10.0.12.16
Langkah 1. Kemas kini repositori dan pakej Sistem Debian
Pertama, jalankan arahan di bawah pada semua sistem untuk mengemas kini pakej perisian ke yang terbaru.
$ sudo apt kemas kini$ sudo apt upgrade -y
Langkah: 2 Pasang Nginx pada pelayan belakang
Sediakan pelayan belakang anda dengan memasang pelayan web Nginx pada setiap pelayan. Anda juga boleh memilih untuk memasang pelayan web lain seperti apache.
Untuk memasang Nginx, jalankan arahan berikut pada setiap pelayan belakang di persekitaran anda:
$ sudo apt memasang nginxLangkah: 3 Setelah Nginx dipasang di pelayan belakang anda, mulakan perkhidmatan seperti yang ditunjukkan di bawah:
$ Sudo systemctl mulakan nginxTIP: Kami juga dapat menguruskan pelayan web nginx menggunakan arahan di bawah:
$ sudo / etc / init.d / nginx "pilihan"pilihan: mulakan muat semula mulakan semula status berhenti
Langkah: 4 Buat halaman indeks tersuai di folder web setiap pelayan web Nginx. Ini akan membantu kita membezakan pelayan belakang yang melayani permintaan masuk.
Pada setiap pelayan web, lakukan tugas berikut:
Sandarkan fail indeks asal menggunakan arahan berikut:
$ sudo cp / usr / share / nginx / html / index.html / usr / share / nginx / html / index.html.origTambahkan teks tersuai ke indeks.fail html. Kami menambahkan alamat IP setiap pelayan web.
Untuk pelayan web 1:
$ sudo echo "Pelayan web 1: 10.0.12.15 "| sudo tee / usr / share / nginx / html / index.htmlUntuk pelayan web 2:
$ sudo echo "Pelayan web 2: 10.0.12.16 "| sudo tee / usr / share / nginx / html / index.htmlAnda juga boleh menggunakan editor vi jika anda merasa lebih selesa dengan itu. Ini ditunjukkan di bawah:
$ sudo vi / usr / share / nginx / html / index.htmlApabila fail dibuka, masukkan teks dan simpan fail.
Buka fail hos maya lalai di direktori "/ etc / nginx / sites-available /".
$ sudo nano / etc / nginx / sites-available / defaultSekarang di dalam blok pelayan, ubah arahan root dari "/ var / www / html" menjadi "/ usr / share / nginx / html".
Untuk memeriksa konfigurasi Nginx, jalankan arahan berikut:
$ sudo nginx -tLangkah 5: Sekarang mulakan semula perkhidmatan menggunakan arahan:
$ sudo systemctl mulakan semula nginxAnda boleh menyemak status nginx menggunakan arahan berikut:
$ sudo systemctl status nginxLangkah: 6 Untuk memasang HAProxy pada Debian 10 (Buster), jalankan arahan berikut pada load-balancer.
$ sudo apt memasang haproxy -yPetua: Setelah HAProxy dipasang, anda boleh menguruskan HAProxy melalui skrip init. Untuk ini, tetapkan parameter "diaktifkan" menjadi 1 di "/ etc / default / haproxy" seperti yang ditunjukkan di bawah:
$ sudo vi / etc / default / haproxyDIBENARKAN = 1
Sekarang pilihan berikut dapat digunakan dengan skrip init:
pilihan $ sudo haproxy “pilihan."pilihan: mulakan muat semula mulakan semula status berhenti
Langkah: 7 Sekarang konfigurasikan pengimbang beban HAProxy dengan mengedit fail konfigurasi lalai haproxy, i.e. “/ Etc / haproxy / haproxy.cfg ”. Untuk mengedit fail ini, jalankan arahan berikut
$ sudo vi / etc / haproxy / haproxy.cfgPetua: Sila sandarkan fail asal supaya sekiranya berlaku sesuatu yang salah, kita semua akan selamat. Untuk melakukan sandaran, gunakan arahan berikut:
$ sudo cp / etc / haproxy / haproxy.cfg / etc / haproxy / haproxy.cfg.origSekarang pergi ke akhir fail dan edit maklumat berikut:
frontend Local_Servermengikat 10.0.12.10:80
mod http
pelayan laman web default_backend
pelayan laman web backend
mod http
baki bulat
opsyen ke hadapan untuk
http-request set-header X-Forwarded-Port% [dst_port]
http-request add-header X-Forwarded-Proto https jika ssl_fc
pilihan httpchk KETUA / HTTP / 1.1rnHost: localhost
pelayan web1 10.0.12.15:80
pelayan web2 10.0.12.16:80
Nota: Jangan lupa menukar alamat IP dalam fail di atas ke alamat yang telah anda tambahkan ke pelayan web anda.
Langkah: 8 Sahkan sintaks konfigurasi fail di atas dengan arahan berikut:
$ sudo haproxy -c -f / etc / haproxy / haproxy.cfgSekiranya semuanya berjalan dengan betul, ia akan menunjukkan output seperti: "Fail konfigurasi itu sah."Sekiranya anda mendapat ralat dalam output, periksa semula fail konfigurasi anda dan sahkan lagi.
Langkah: 9 Sekarang mulakan semula perkhidmatan HAProxy untuk menerapkan perubahan
Perkhidmatan haproxy dimulakan semula oleh $ sudoMenguji Konfigurasi
Sekarang masanya untuk melihat apakah persediaan kita berjalan dengan baik. Masukkan IP sistem pengimbang beban pada penyemak imbas web (Dalam kes kami, ia adalah 10.0.12.10) dan muat semula halaman secara berterusan selama 2-4 kali untuk melihat apakah HAProxy load-balancer berfungsi dengan baik. Anda harus melihat alamat IP yang berbeza atau teks apa pun yang anda masukkan dalam indeks.fail html apabila anda terus memuat semula halaman berkali-kali.
Cara lain untuk memeriksa adalah dengan membawa satu pelayan web di luar talian dan memeriksa sama ada pelayan web lain melayani permintaan tersebut.
Itu sahaja buat masa ini! Cuba bereksperimen dengan HAProxy untuk mengetahui lebih lanjut mengenai cara kerjanya. Untuk e.g., anda boleh cuba:
- Mengintegrasikan pelayan web yang berbeza di samping nginx.
- Menukar algoritma pengimbang beban kepada sesuatu yang lain daripada round-robin.
- Mengkonfigurasi pemeriksaan kesihatan HAProxy untuk menentukan sama ada pelayan belakang berfungsi atau tidak.
- Mengamalkan sesi melekatkan untuk menghubungkan pengguna ke pelayan belakang yang sama.
- Menggunakan statistik HAProxy untuk mendapatkan pandangan mengenai lalu lintas di pelayan.
HAProxy mempunyai dokumentasi yang luas untuk edisi komuniti HAProxy dan versi perusahaan HAProxy. Terokai dokumentasi ini untuk mendapatkan lebih banyak pandangan mengenai peningkatan prestasi dan kebolehpercayaan persekitaran pelayan anda.
Panduan ini berjaya dilaksanakan di Debian 10 (Buster). Cuba pasang HAProxy pada distro berasaskan Debian lain seperti Ubuntu, Linux Mint dll. Jangan lupa untuk berkongsi panduan ini dengan orang lain.