GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengatur HAProxy di CentOS 8

HAProxy adalah singkatan dari High Availability Proxy. Ditulis dalam C, ini adalah TCP/HTTP Load Balancer dan solusi proxy gratis dan open-source untuk aplikasi berbasis TCP dan HTTP. HAProxy digunakan untuk meningkatkan kinerja lingkungan server dengan mendistribusikan beban kerja di beberapa server.

HAProxy memungkinkan aplikasi untuk memulai ulang secara otomatis atau mengalihkan pekerjaan ke server lain jika terjadi kegagalan. Penyeimbang beban yang kuat, berkinerja tinggi, andal, dan aman ini adalah yang paling banyak digunakan dan dirancang khusus untuk situs web dengan lalu lintas sangat tinggi.

Dalam tutorial ini, kami akan menunjukkan cara menyiapkan penyeimbang beban ketersediaan tinggi dengan HAProxy di CentOS 8.

Prasyarat

  • Tiga VPS CentOS 8 baru di Platform Cloud Atlantic.Net
  • Kata sandi root yang dikonfigurasi pada setiap VPS

Untuk tutorial ini, kita akan menggunakan pengaturan berikut:

Server Proksi HA: – nama host :haproxy IP:192.168.0.10

Server Web 1:- nama host :web1 IP:192.168.0.11

Server Web 2:- nama host :web2 IP:192.168.0.12

Langkah 1 – Buat Server Cloud Atlantic.Net

Pertama, masuk ke Server Cloud Atlantic.Net Anda. Buat server baru, pilih CentOS 8 sebagai sistem operasi dengan setidaknya 1GB RAM. Hubungkan ke Server Cloud Anda melalui SSH dan masuk menggunakan kredensial yang disorot di bagian atas halaman.

Setelah Anda masuk ke server CentOS 8 Anda, jalankan perintah berikut untuk memperbarui sistem dasar Anda dengan paket terbaru yang tersedia.

dnf update -y

Langkah 2 – Instal dan Konfigurasi Nginx

Catatan:Selesaikan langkah ini di WebServer 1 dan WebServer2

Pertama, Anda perlu menginstal server web Nginx pada instance web1 dan web2.

Anda dapat menginstal Nginx dengan menjalankan perintah berikut:

dnf install nginx -y

Setelah Nginx diinstal, mulai layanan Nginx dan aktifkan untuk memulai saat boot pada kedua instance:

systemctl start nginx
systemctl enable nginx

Selanjutnya, ubah index.html file pada setiap instance.

Ubah index.html file di web1 contoh dengan perintah berikut:

echo "This is My First Nginx Web Server" > /usr/share/nginx/html/index.html

Ubah index.html file di web2 contoh dengan perintah berikut:

echo "This is My Second Nginx Web Server" > /usr/share/nginx/html/index.html

Simpan dan tutup file setelah Anda selesai.

Langkah 3 – Instal dan Konfigurasi HAProxy

Catatan:Selesaikan langkah ini di HAProxy Server

Pertama, instal HAProxy pada instance server haproxy dengan perintah berikut:

dnf install haproxy -y

Setelah instalasi selesai, buat cadangan file konfigurasi default haproxy:

mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg-bak

File konfigurasi dibagi menjadi empat bagian utama.

  1. setelan global: Digunakan untuk menyetel parameter seluruh proses.
  2. default: Digunakan untuk menyetel parameter default untuk semua bagian lainnya.
  3. depan depan: Digunakan untuk menentukan bagaimana HAProxy diakses secara eksternal untuk mengaktifkan akses ke backend.
  4. bagian belakang: Digunakan untuk menentukan sekumpulan server yang akan disambungkan oleh proxy untuk meneruskan koneksi masuk.

Selanjutnya, buat file konfigurasi haproxy baru menggunakan perintah berikut:

nano /etc/haproxy/haproxy.cfg

Tambahkan baris berikut yang sesuai dengan infrastruktur Anda:

#————————————————————————

global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon

# nyalakan stats unix socket

stats socket /var/lib/haproxy/stats

# memanfaatkan kebijakan kripto di seluruh sistem

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 utama yang diproksi ke backend

#————————————————————————

frontend haproxy_balancer # define the name of the frontend.
bind 192.168.0.10:80 # IP address of HAProxy server
option http-server-close
option forwardfor
stats uri /haproxy?stats # Specify the HAProxy status page.
default_backend webservers

#————————————————————————

# penyeimbangan round robin antara berbagai backend

#————————————————————————

backend webservers # Tentukan nama untuk mengidentifikasi aplikasi

mode http
balance roundrobin # defines the roundrobin load balancer scheduling algorithm
option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost
server nginx-web1 192.168.0.11:80 check # IP address of the first backend server
server nginx-web2 192.168.0.12:80 check # IP address of the second backend server

Catatan:Pastikan Anda mengubah alamat IP di atas dengan IP yang relevan dengan penyiapan server Anda

Simpan dan tutup file setelah Anda selesai. Kemudian, periksa file konfigurasi haproxy apakah ada kesalahan dengan perintah berikut:

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

Anda akan mendapatkan output berikut:

Configuration file is valid

Terakhir, mulai layanan haproxy dan aktifkan untuk memulai saat boot dengan perintah berikut:

systemctl start haproxy
systemctl enable haproxy

Anda juga dapat memverifikasi haproxy dengan perintah berikut:

systemctl status haproxy

Anda akan mendapatkan output berikut:

  • haproxy.service - HAProxy Load Balancer
Loaded: loaded (/usr/lib/systemd/system/haproxy.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2020-04-24 02:14:55 EDT; 5min ago
Process: 1371 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q (code=exited, status=0/SUCCESS)
Main PID: 1373 (haproxy)
Tasks: 2 (limit: 6087)
Memory: 2.8M
CGroup: /system.slice/haproxy.service
├─1373 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
└─1374 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid

Apr 24 02:14:55 haproxy systemd[1]: Starting HAProxy Load Balancer...
Apr 24 02:14:55 haproxy systemd[1]: Started HAProxy Load Balancer.

Langkah 4 – Konfigurasi HAProxy Logging

Logging HAProxy memungkinkan Anda melihat statistik setiap koneksi ke server web backend Anda.

Anda dapat mengkonfigurasi rsyslog dengan mengedit file /etc/rsyslog.conf:

nano /etc/rsyslog.conf

Batalkan komentar pada baris berikut:

module(load="imudp")
input(type="imudp" port="514")

Simpan dan tutup file setelah Anda selesai. Selanjutnya, Anda perlu mengkonfigurasi server rsyslog untuk menerima dan memproses pesan log HAProxy.

Untuk melakukannya, buat file konfigurasi haproxy.conf baru:

nano /etc/rsyslog.d/haproxy.conf

Tambahkan baris berikut:

local2.=info /var/log/haproxy-access.log
local2.notice /var/log/haproxy-info.log

Simpan dan tutup file setelah Anda selesai. Kemudian, restart layanan rsyslog dan aktifkan untuk memulai saat boot dengan perintah berikut:

systemctl restart rsyslog
systemctl enable rsyslog

Langkah 5 – Uji HAProxy Load Balancing

Pada titik ini, HAProxy diinstal dan dikonfigurasi. Saatnya menguji apakah load balancing berfungsi atau tidak.

Buka browser web Anda dan ketikkan HAProxy IP Anda http://192.168.0.10. Anda akan melihat konten server web Nginx pertama Anda di layar berikut:

Selanjutnya, segarkan halaman web. Anda akan melihat konten server web Nginx kedua Anda di layar berikut:

Anda dapat melihat status haproxy menggunakan URL http://192.168.0.10/haproxy?stats. Anda akan melihat kondisi server Anda, tingkat permintaan saat ini, waktu respons, dan metrik lainnya di layar berikut:

Kesimpulan

Dalam panduan di atas, kami mempelajari cara menyiapkan penyeimbang beban ketersediaan tinggi dengan HAProxy di CentOS 8. Kini Anda dapat dengan mudah merancang dan mengonfigurasi penyeimbangan beban agar sesuai dengan infrastruktur TI dan kebutuhan aplikasi Anda; cobalah di VPS Hosting dari Atlantic.Net.


Linux
  1. Cara mengatur server SFTP di CentOS

  2. Cara Mengatur HAProxy di Ubuntu 16.04

  3. Cara Setup SysLog Server di CentOS 7 / RHEL 7

  1. Cara Setup Server NFS di CentOS 7 / RHEL 7

  2. Cara mengatur replikasi MySQL di CentOS

  3. Bagaimana cara Setup Server NTP di CentOS?

  1. Cara Setup Server FTP dengan VSFTPD di CentOS 7

  2. Cara Setup Server FTP dengan VSFTPD di CentOS 8

  3. Cara Setup DNS Server (Bind) di CentOS 8 / RHEL8