HAProxy adalah penyeimbang beban dan server proxy HTTP/TCP dengan ketersediaan tinggi gratis. Ini menyebarkan permintaan di antara beberapa server untuk mengurangi masalah yang diakibatkan oleh kegagalan server tunggal. HA Proxy digunakan oleh sejumlah situs web terkenal termasuk GitHub, Bitbucket, Stack Overflow, Reddit, Tumblr, Twitter, dan Tuenti, dan digunakan dalam produk OpsWorks dari Amazon Web Services.
Di sini, di LinuxAPT, sebagai bagian dari Layanan Manajemen Server kami, kami secara teratur membantu Pelanggan kami untuk melakukan kueri konfigurasi HAProxy terkait.
Dalam konteks ini, kita akan melihat cara menginstal HAProxy pada sistem CentOS 8 Anda.
Langkah-langkah untuk Menginstal dan mengkonfigurasi HAProxy di CentOS 8
1. Lakukan Pembaruan Sistem
Pertama, mari kita mulai dengan memastikan sistem Anda mutakhir:
$ sudo clean all
$ sudo dnf update
2. Instal HAProxy di sistem
HAProxy tersedia di CentOS 8 default, Sekarang gunakan perintah dnfa berikut untuk menginstal HAProxy:
$ sudo dnf install haproxy
Selanjutnya, kita harus memverifikasi bahwa HAProxy dimulai setiap kali kita me-reboot server kita. Kita dapat melakukannya dengan perintah chkconfig di bawah ini:
$ chkconfig haproxy on
3. Konfigurasi HAProxy
Kita akan membuat file konfigurasi /etc/haproxy/haproxy.cfg yang berisi pengaturan dan konfigurasi yang diperlukan:
$ sudo nano /etc/haproxy/haproxy.cfg
Masukkan yang berikut ke dalam file:
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
stats socket /var/lib/haproxy/stats
ssl-default-bind-ciphers PROFILE=SYSTEM
ssl-default-server-ciphers PROFILE=SYSTEM
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
frontend main
bind *:5000
acl url_static path_beg -i /static /images /javascript /stylesheets
acl url_static path_end -i .jpg .gif .png .css .js
use_backend static if url_static
default_backend app
backend static
balance roundrobin
server static 127.0.0.1:4331 check
backend app
balance roundrobin
server app1 127.0.0.1:5001 check
server app2 127.0.0.1:5002 check
server app3 127.0.0.1:5003 check
server app4 127.0.0.1:5004 check
Anda dapat melihat detail konfigurasi dan informasi lebih lanjut, periksa URL ini. Setelah Anda mengonfigurasi HAProxy, saatnya untuk memulai layanan:
$ sudo systemctl start haproxy
$ sudo systemctl enable haproxy
4. Konfigurasi Firewall
Kami akan menambahkan HAProxy ke firewall CentOS 8 dan memperbarui aturan dengan perintah berikut:
$ sudo firewall-cmd --add-port=8088/tcp --permanent
$ sudo firewall-cmd --reload
5. Konfigurasi HAProxy Logging
Untuk mengkonfigurasi HAProxy standar logging edit /etc/rsyslog.conf dan aktifkan penerimaan UDP Syslog pada port 514:
$ sudo nano /etc/rsyslog.conf
...
# Provides UDP syslog reception
# for parameters see http://www.rsyslog.com/doc/imudp.html
module(load="imudp") # needs to be done just once
input(type="imudp" port="514")
...
*.info;mail.none;authpriv.none;cron.none,local2.none /var/log/messages
local2.* /var/log/haproxy.log
...
Kemudian, simpan file konfigurasi dan jalankan perintah di bawah ini untuk memeriksa kesalahan:
$ rsyslogd -N1
$ sudo systemctl restart rsyslog haproxy
6. Konfigurasi Apache X-Forwarded-For Logging di Server Backend
Sekarang kita masuk ke server backend dan mengkonfigurasi Apache untuk mencatat header X-Forwarded-For. Baris default yang kita ubah adalah:
...
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
...
Edit baris ini sehingga terlihat seperti:
...
LogFormat "\"%{X-Forwarded-For}i\" %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
...
Simpan file dan mulai ulang Apache:
$ apachectl configtest
$ sudo systemctl restart httpd
Bagaimana Menguji Penyeimbang Beban HAProxy ?
Untuk memverifikasi bahwa HAProxy mampu memuat keseimbangan permintaan HTTP, navigasikan ke browser, dan akses HAProxy menggunakan nama host atau alamat IP.
Bagaimana Cara Memulai Ulang HAProxy ?
Setelah mengkonfigurasi layer 4 atau layer 7, restart HAProxy dengan perintah berikut:
$ systemctl restart haproxy
Restart yang berhasil tidak akan menghasilkan output, yang berarti HAProxy aktif dan berjalan dengan perubahan yang baru saja Anda terapkan.