Cara mengatur penyeimbang beban haproxy di ubuntu 18.04 & 16.04

Cara mengatur penyeimbang beban haproxy di ubuntu 18.04 & 16.04

Haproxy adalah solusi yang sangat cepat dan andal untuk ketersediaan tinggi, penyeimbangan beban, mendukung aplikasi berbasis TCP dan HTTP. Saat ini memaksimalkan situs web up-time sangat penting untuk situs web lalu lintas yang padat. Ini tidak mungkin dengan pengaturan server tunggal. Maka kita membutuhkan beberapa lingkungan ketersediaan tinggi yang dapat dengan mudah dikelola dengan kegagalan server tunggal.

Artikel ini akan membantu Anda mengatur lingkungan penyeimbang beban haproxy di Ubuntu, Debian dan Linuxmint. Ini akan mengonfigurasi a Lapisan 4 Load Balancing (Lapisan transportasi). Yang akan menyeimbangkan permintaan memuat dan mentransfer ke berbagai server berdasarkan alamat IP dan nomor port.

Rincian jaringan -

Di bawah ini adalah server jaringan kami. Ada 3 server web yang berjalan dengan Apache2 dan mendengarkan di port 80 dan satu server Haproxy.

Detail server web: Server 1: Web1.contoh.com 192.168.1.101 Server 2: Web2.contoh.com 192.168.1.102 Server 3: Web3.contoh.com 192.168.1.103 Server Haproxy:  Haproxy: Haproxy 192.168.1.12 

Langkah 1 - Instal Haproxy

Sekarang mulai pengaturan. SSH ke server Haproxy Anda sebagai pengguna istimewa dan instal HAPROXY menggunakan perintah berikut.

sudo add-apt-repository ppa: vbernat/haproxy-1.8 sudo apt-get update sudo apt-get install haproxy 

Langkah 2 - Mengkonfigurasi Balancing Load Haproxy

Sekarang Edit File Konfigurasi Default Haproxy /etc/haproxy/haproxy.CFG dan mulai konfigurasi.

sudo vi/etc/haproxy/haproxy.CFG 

Pengaturan default:

Anda akan menemukan beberapa konfigurasi default seperti di bawah ini. Jika Anda tidak memiliki cukup ide tentang ini, Anda dapat menyimpannya.

Log Global/Dev/Log Lokal0 Log/Dev/Log Lokal1 PEMBERITAHUAN CHROOT/VAR/LIB/HAPROXY STATS SOCKET/RUN/HAPROXY/ADMIN.Sock Mode 660 Level Admin Stats Timeout 30-an Pengguna Haproxy Group Haproxy Daemon # Default Lokasi Bahan SSL CA-Base/etc/SSL/CERTS CRT-BASE/ETC/SSL/Private # Default Ciphers untuk digunakan pada soket pendengaran SSL yang diaktifkan SSL. # Untuk informasi lebih lanjut, lihat cipher (1SSL). Daftar ini dari: # https: // hynek.ME/Artikel/pengerasan-WeB-servers-ssl-ciphers/ssl-default-bind-ciphers ECDH+AESGCM: DH+AESGCM: ECDH+AES256 :: RSA+AES: RSA+3DES:!Anull:!MD5:!DSS SSL-DEFAULT-BIND-OPTIONS NO-SSLV3 DEFAULTS LOG GLOBAL Mode http Opsi httplog Opsi DontLognull Timeout Connect 5000 Timeout Client 50000 Timeout Server 50000 ErrorFile 400/etc/haproxy/errors/400.HTTP ErrorFile 403/etc/Haproxy/Kesalahan/403.HTTP ErrorFile 408/etc/Haproxy/Kesalahan/408.HTTP ErrorFile 500/etc/Haproxy/Kesalahan/500.HTTP ErrorFile 502/etc/haproxy/kesalahan/502.HTTP ErrorFile 503/etc/haproxy/kesalahan/503.HTTP ErrorFile 504/etc/haproxy/kesalahan/504.http 

Menambahkan pendengar haproxy:

Sekarang beri tahu haproxy ke tempat mendengarkan koneksi baru. Sesuai konfigurasi di bawah ini Haproxy akan daftar pada port 80 dari 192.168.1.12 alamat IP.

frontend local_server bind 192.168.1.12:80 Mode http default_backend my_web_servers 

Tambahkan Backend Web Server:

Sesuai konfigurasi di atas Haproxy sekarang mendengarkan di port 80. Sekarang tentukan server web backend tempat haproxy mengirim permintaan.

Backend Node Mode HTTP Opsi Roundrobin Opsi Maju Untuk HTTP-Request Set-Header X-Forwarded-Port %[DST_PORT] http-request add-header x-forwarded-proto https if ssl_fc opsi httpchk head / http / 1.1RNHOST: LocalHost Server Web1.contoh.com 192.168.1.101: 80 Server Web2.contoh.com 192.168.1.102: 80 Server Web3.contoh.com 192.168.1.103: 80 

Aktifkan statistik (opsional)

Sekarang jika Anda menginginkannya, Anda dapat mengaktifkan statistik Haproxy dengan menambahkan konfigurasi berikut dalam file konfigurasi Haproxy.

Dengarkan Statistik *: 1936 Statistik Mengaktifkan Statistik Sembunyikan Statistik Versi Refresh 30S Stats Show-Node Stats Authame: Kata Sandi Statistik URI /Statistik 

Langkah 3 - File Konfigurasi Haproxy Akhir

File konfigurasi akhir mungkin terlihat seperti di bawah ini:

Log Global/Dev/Log Lokal0 Log/Dev/Log Lokal1 PEMBERITAHUAN CHROOT/VAR/LIB/HAPROXY STATS SOCKET/RUN/HAPROXY/ADMIN.Sock Mode 660 Level Admin Stats Timeout 30-an Pengguna Haproxy Group Haproxy Daemon # Default Lokasi Bahan SSL CA-Base/etc/SSL/CERTS CRT-BASE/ETC/SSL/Private # Default Ciphers untuk digunakan pada soket pendengaran SSL yang diaktifkan SSL. # Untuk informasi lebih lanjut, lihat cipher (1SSL). Daftar ini dari: # https: // hynek.ME/Artikel/pengerasan-WeB-servers-ssl-ciphers/ssl-default-bind-ciphers ECDH+AESGCM: DH+AESGCM: ECDH+AES256 :: RSA+AES: RSA+3DES:!Anull:!MD5:!DSS SSL-DEFAULT-BIND-OPTIONS NO-SSLV3 DEFAULTS LOG GLOBAL Mode http Opsi httplog Opsi DontLognull Timeout Connect 5000 Timeout Client 50000 Timeout Server 50000 ErrorFile 400/etc/haproxy/errors/400.HTTP ErrorFile 403/etc/Haproxy/Kesalahan/403.HTTP ErrorFile 408/etc/Haproxy/Kesalahan/408.HTTP ErrorFile 500/etc/Haproxy/Kesalahan/500.HTTP ErrorFile 502/etc/haproxy/kesalahan/502.HTTP ErrorFile 503/etc/haproxy/kesalahan/503.HTTP ErrorFile 504/etc/haproxy/kesalahan/504.http frontend local_server bind 192.168.1.12:80 Mode http default_backend my_web_servers backend my_web_servers Mode HTTP Opsi Roundrobin Forporing untuk http-request set-header x-forwarded-port %[dst_port] http-request adder-header x-forwarded-proto https https https sing-header s-header-proto-proto https https sm-header s-header proto-proto https https Http/1.1RNHOST: LocalHost Server Web1.contoh.com 192.168.1.101: 80 Server Web2.contoh.com 192.168.1.102: 80 Server Web3.contoh.com 192.168.1.103: 80 Dengarkan Statistik *: 1936 Statistik Mengaktifkan Statistik Sembunyikan Statistik Versi Refresh 30S Stats Show-Node Stats Auth Nama Pengguna: Kata Sandi Statistik URI /Statistik 

Langkah 4 - Haproxy Restart

Sekarang Anda telah membuat semua perubahan yang diperlukan di server Haproxy Anda. Sekarang verifikasi file konfigurasi sebelum memulai kembali layanan menggunakan perintah berikut.

haproxy -c -f/etc/haproxy/haproxy.CFG 

Jika perintah di atas dikembalikan output sebagai file konfigurasi valid maka restart layanan haproxy

Layanan Sudo Haproxy Restart 

Langkah 5 - Verifikasi Pengaturan Haproxy

Pada tahap ini, kami memiliki pengaturan Haproxy Fungsional penuh. Di setiap simpul server web, saya memiliki indeks demo.halaman html menampilkan nama host server, sehingga kami dapat dengan mudah membedakan antara server halaman web.

Sekarang akses port 80 di IP 192.168.1.12 (seperti yang dikonfigurasi di atas) di browser web dan tekan refresh. Anda akan melihat bahwa Haproxy mengirimkan permintaan ke server backend satu per satu (sesuai algoritma round-robin).

Dengan setiap penyegaran Anda bisa bahwa Haproxy mengirimkan permintaan satu per satu ke server backend.

Referensi: http: // www.Haproxy.org/download/1.5/doc/konfigurasi.txt