Cara Menyiapkan Balancer Beban Haproxy di Ubuntu 18.04 & 16.04

Cara Menyiapkan Balancer Beban Haproxy di Ubuntu 18.04 & 16.04

Haproxy adalah penyelesaian yang sangat cepat dan boleh dipercayai untuk ketersediaan tinggi, mengimbangi beban, ia menyokong aplikasi berasaskan TCP dan HTTP. Pada masa kini memaksimumkan laman web up-time sangat penting untuk laman web trafik yang berat. Ini tidak mungkin dengan persediaan pelayan tunggal. Kemudian kita memerlukan beberapa persekitaran ketersediaan yang tinggi yang dapat dikendalikan dengan mudah dengan kegagalan pelayan tunggal.

Artikel ini akan membantu anda menyiapkan persekitaran mengimbangi beban Haproxy di Ubuntu, Debian dan Linuxmint. Ini akan mengkonfigurasi a Lapisan 4 mengimbangi beban (Lapisan pengangkutan). Yang akan mengimbangi permintaan beban dan pemindahan ke pelayan yang berbeza-2 berdasarkan alamat IP dan nombor port.

Butiran Rangkaian -

Berikut adalah pelayan rangkaian kami. Terdapat 3 pelayan web yang berjalan dengan apache2 dan mendengar di port 80 dan satu pelayan haproxy.

Maklumat Pelayan Web: Pelayan 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 Pelayan haproxy:  Haproxy: Haproxy 192.168.1.12 

Langkah 1 - Pasang Haproxy

Sekarang mulakan persediaan. Ssh ke pelayan haproxy anda sebagai pengguna istimewa dan memasang haproxy menggunakan arahan berikut.

PPA add-apt-repositori sudo: vbernat/haproxy-1.8 sudo apt-get kemas kini sudo apt-get pemasangan haproxy 

Langkah 2 - Konfigurasikan pengimbangan beban haproxy

Sekarang edit fail konfigurasi lalai haproxy /etc/haproxy/haproxy.cfg dan mula konfigurasi.

sudo vi/etc/haproxy/haproxy.cfg 

Tetapan lalai:

Anda akan menemui beberapa konfigurasi lalai seperti di bawah. Sekiranya anda tidak mempunyai idea yang mencukupi mengenai perkara ini, anda boleh menyimpannya.

Log Global/Dev/Log Local0 Log/Dev/Log Local1 Notis Chroot/Var/Lib/Haproxy Stats Socket/Run/Haproxy/Admin.Sock Mode 660 Tahap Time Stats Timeout 30s Pengguna Haproxy Group Haproxy Daemon # Default SSL Bahan Lokasi CA-Base/ETC/SSL/CERTS CRT-BASE/ETC/SSL/SRIVATE #. # Untuk maklumat lanjut, lihat Ciphers (1SSL). Senarai ini adalah dari: # https: // hynek.ME/Artikel/Hardening-Your-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 Lalai Log Global Mode HTTP Option Httplog Dontlognul Timeout Connect 5000 Timeout Client 50000 Timeout Server 50000 Ralat 400/etc/Haproxy/Ralat/400.HTTP ERRORFILE 403/etc/haproxy/ralat/403.HTTP ERRORFILE 408/etc/haproxy/ralat/408.HTTP ERRORFILE 500/etc/haproxy/ralat/500.HTTP ERRORFILE 502/etc/haproxy/ralat/502.HTTP ERRORFILE 503/etc/haproxy/ralat/503.HTTP ERRORFILE 504/etc/haproxy/ralat/504.http 

Menambah pendengar haproxy:

Sekarang beritahu Hamproxy ke mana untuk mendengar sambungan baru. Seperti di bawah Konfigurasi Haproxy akan disenaraikan di port 80 tahun 192.168.1.12 alamat IP.

Frontend Local_Server mengikat 192.168.1.12:80 mod http default_backend my_web_servers 

Tambahkan pelayan web backend:

Seperti yang ada di atas Konfigurasi Haproxy kini sedang mendengar di port 80. Sekarang tentukan pelayan web backend di mana haproxy menghantar permintaan.

Backend nodes mode http baki pilihan roundrobin ke hadapan untuk http-request set-header x-forwarded-port %[dst_port] http-request add-header x-forward-proto https if ssl_fc.1RNHOST: Web1 Pelayan Localhost.Contoh.com 192.168.1.101: 80 pelayan web2.Contoh.com 192.168.1.102: 80 pelayan web3.Contoh.com 192.168.1.103: 80 

Dayakan Statistik (Pilihan)

Sekarang jika anda mahu, anda boleh mengaktifkan statistik HAPROXY dengan menambahkan konfigurasi berikut dalam fail konfigurasi HAProxy.

Dengarkan Statistik *: 1936 Statistik Membolehkan Statistik Statistik Hide-Stats Refresh Statistik 30S Menunjukkan Statistik Node Pengguna Nama Pengguna: Statistik Kata Laluan URI /Statistik 

Langkah 3 - Fail Konfigurasi Haproxy Akhir

Fail konfigurasi akhir mungkin kelihatan seperti di bawah:

Log Global/Dev/Log Local0 Log/Dev/Log Local1 Notis Chroot/Var/Lib/Haproxy Stats Socket/Run/Haproxy/Admin.Sock Mode 660 Level Admin Stats Timeout 30s User Haproxy Group Haproxy Daemon # Default SSL Bahan Lokasi CA-Base/ETC/SSL/CERTS CRT-BASE/ETC/SSL/SRIVATE #. # Untuk maklumat lanjut, lihat Ciphers (1SSL). Senarai ini adalah dari: # https: // hynek.ME/Artikel/Hardening-Your-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 Mode Global HTTP Option Httplog Opti.HTTP ERRORFILE 403/etc/haproxy/ralat/403.HTTP ERRORFILE 408/etc/haproxy/ralat/408.HTTP ERRORFILE 500/etc/haproxy/ralat/500.HTTP ERRORFILE 502/etc/haproxy/ralat/502.HTTP ERRORFILE 503/etc/haproxy/ralat/503.HTTP ERRORFILE 504/etc/haproxy/ralat/504.HTTP Frontend Local_Server Bind 192.168.1.Mod 12:80 mod http defauld_backend my_web_servers backend my_web_servers mod http baki baki htTP horrobin horshb / Http/1.1RNHOST: Web1 Pelayan Localhost.Contoh.com 192.168.1.101: 80 pelayan web2.Contoh.com 192.168.1.102: 80 pelayan web3.Contoh.com 192.168.1.103: 80 Dengar Statistik *: 1936 Statistik Membolehkan Statistik Statistik Hide-Stats Refresh Statistik 30S Menunjukkan Statistik Node Pengguna Nama: Kata Laluan URI /Statistik 

Langkah 4 - Mulakan semula haproxy

Sekarang anda telah membuat semua perubahan yang diperlukan dalam pelayan haproxy anda. Sekarang Sahkan fail konfigurasi sebelum memulakan semula perkhidmatan menggunakan arahan berikut.

haproxy -c -f/etc/haproxy/haproxy.cfg 

Jika arahan di atas dikembalikan output sebagai fail konfigurasi adalah sah maka mulakan semula perkhidmatan haproxy

perkhidmatan sudo haprroxy dimulakan semula 

Langkah 5 - Sahkan tetapan haproksi

Pada peringkat ini, kami mempunyai persediaan haproxy berfungsi penuh. Di setiap nod pelayan web, saya mempunyai indeks demo.Halaman HTML Menunjukkan Nama Host Server, jadi kami dapat dengan mudah membezakan antara halaman web pelayan.

Sekarang akses port 80 pada ip 192.168.1.12 (seperti yang dikonfigurasi di atas) dalam pelayar web dan tekan Refresh. Anda akan melihat bahawa Haproxy menghantar permintaan ke pelayan backend satu demi satu (seperti algoritma bulat-robin).

Dengan setiap penyegaran, anda boleh menghantar permintaan satu demi satu ke pelayan backend.

Rujukan: http: // www.Haproxy.org/muat turun/1.5/doc/konfigurasi.txt