GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal HAProxy Load Balancer di Ubuntu 18.04 Bionic Beaver

Pada artikel ini, kami akan menjelaskan langkah-langkah yang diperlukan untuk menginstal dan mengkonfigurasi HAProxy Load Balancer di Ubuntu 18.04 LTS. Sebelum melanjutkan dengan tutorial ini, pastikan Anda masuk sebagai pengguna dengan hak istimewa sudo. Semua perintah dalam tutorial ini harus dijalankan sebagai pengguna non-root.

HAProxy adalah alat Linux sumber terbuka yang menyediakan layanan penyeimbang beban dan proxy ketersediaan tinggi untuk aplikasi jaringan berbasis TCP dan HTTP. Karena integrasinya yang mudah ke dalam arsitektur yang ada, kesesuaian untuk situs web dengan lalu lintas tinggi, keandalan ekstrem, dan fokus pada kompatibilitas ke atas, ia dikirimkan secara default oleh sebagian besar distro Linux arus utama.

Instal HAProxy di Ubuntu

Langkah 1. Detail Jaringan

Demi kesederhanaan, kami akan mengasumsikan alamat IP dan nama host berikut untuk instance:

  • haproxy-server :alamat IP publik 198.18.0.1
  • backend-server1 :alamat IP pribadi 172.16.0.1 , alamat IP publik 198.18.0.1
  • backend-server2 :alamat IP pribadi 172.16.0.2 , alamat IP publik 198.18.0.2

Langkah 2. Pertama, sebelum Anda mulai menginstal paket apa pun di server Ubuntu Anda, kami selalu menyarankan untuk memastikan bahwa semua paket sistem telah diperbarui.

sudo apt update
sudo apt upgrade

Langkah 3. Instal HaProxy di Ubuntu 18.04 LTS.

HaProxy tersedia di repositori perangkat lunak Ubuntu, jadi kita dapat menginstalnya menggunakan manajer paket dengan menjalankan perintah di bawah ini:

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

Langkah 4. Konfigurasi Load Balancing dengan HAProxy.

Sekarang edit file konfigurasi default haproxy /etc/haproxy/haproxy.cfg dan mulai konfigurasi:

sudo nano /etc/haproxy/haproxy.cfg
global
	log /dev/log	local0
	log /dev/log	local1 notice
	chroot /var/lib/haproxy
	stats socket /run/haproxy/admin.sock mode 660 level admin
	stats timeout 30s
	user haproxy
	group haproxy
	daemon

	# Default SSL material locations
	ca-base /etc/ssl/certs
	crt-base /etc/ssl/private

	# Default ciphers to use on SSL-enabled listening sockets.
	# For more information, see ciphers(1SSL). This list is from:
	#  https://hynek.me/articles/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	global
	mode	http
	option	httplog
	option	dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
	errorfile 400 /etc/haproxy/errors/400.http
	errorfile 403 /etc/haproxy/errors/403.http
	errorfile 408 /etc/haproxy/errors/408.http
	errorfile 500 /etc/haproxy/errors/500.http
	errorfile 502 /etc/haproxy/errors/502.http
	errorfile 503 /etc/haproxy/errors/503.http
	errorfile 504 /etc/haproxy/errors/504.http

Jadi menjelang akhir file, tambahkan konten di bawah ini:

frontend ourwebsitefrontend
    bind *:80
    mode http
    default_backend ourwebsiteendpoin

Parameter bind memberitahu HaProxy untuk mendengarkan port 80 untuk koneksi. Di akhir teks, kami telah menetapkan titik akhir situs web kami sebagai arahan di mana titik akhir kami berada. Sekarang kita dapat melanjutkan dan menambahkan detail konfigurasi backend sebagai berikut:

backend ourwebsiteendpoint
    balance roundrobin
    option forwardfor
    http-request set-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    option httpchk HEAD / HTTP/1.1\r\nHost:localhost
    server backend-server1 172.16.0.1:8080 check
    server backend-server2 172.16.0.2:8080 check

Sekarang jika mau, Anda dapat mengaktifkan statistik Haproxy dengan menambahkan konfigurasi berikut di file konfigurasi HAProxy:

listen stats
    bind :32600
    stats enable
    stats uri /
    stats hide-version
    stats auth username:password

Langkah 5. File Konfigurasi HAProxy Terakhir.

File konfigurasi akhir mungkin terlihat seperti di bawah ini:

global
        log /dev/log    local0
        log /dev/log    local1 notice
        chroot /var/lib/haproxy
        stats socket /run/haproxy/admin.sock mode 660 level admin
        stats timeout 30s
        user haproxy
        group haproxy
        daemon

        # Default SSL material locations
        ca-base /etc/ssl/certs
        crt-base /etc/ssl/private

        # Default ciphers to use on SSL-enabled listening sockets.
        # For more information, see ciphers(1SSL). This list is from:
        #  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
        ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM$
        ssl-default-bind-options no-sslv3

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http

frontend ourwebsitefrontend
        bind *:80
        mode http
        default_backend ourwebsiteendpoint

backend ourwebsiteendpoint
    balance roundrobin
    option forwardfor
    http-request set-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    option httpchk HEAD / HTTP/1.1\r\nHost:localhost
    server backend-server1 172.16.0.1:8080 check
    server backend-server2 172.16.0.2:8080 check

listen stats
    bind :32600
    stats enable
    stats uri /
    stats hide-version
    stats auth username:password

Kemudian, restart server HaProxy untuk memuat ulang perubahan:

sudo service haproxy restart

Langkah 6. Menguji Konfigurasi.

Pada tahap ini, kami memiliki pengaturan HAProxy yang berfungsi penuh. Di setiap node server web saya memiliki halaman demo index.html yang menunjukkan nama host server, Jadi kita dapat dengan mudah membedakan antara halaman web server.

Sekarang akses port 80 pada IP 198.18.0.1 (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).

Hanya itu yang perlu Anda lakukan untuk menginstal HAProxy Load di Ubuntu 18.04. Saya harap Anda menemukan tip cepat ini bermanfaat. Jika Anda memiliki pertanyaan atau saran, jangan ragu untuk meninggalkan komentar di bawah.


Ubuntu
  1. Cara menginstal dan Mengonfigurasi penyeimbang beban HAProxy di Ubuntu 20.04

  2. Cara Menginstal GlassFish di Ubuntu 18.04 Bionic Beaver

  3. Cara Menginstal Netbeans di Ubuntu 18.04 Bionic Beaver

  1. Cara Menginstal Ubuntu 18.04 Bionic Beaver

  2. Cara Menginstal Kodi di Ubuntu 18.04 Bionic Beaver

  3. Cara Menginstal Slack di Ubuntu 18.04 Bionic Beaver

  1. Cara Menginstal Pip di Ubuntu 18.04 Bionic Beaver

  2. Cara Menginstal OpenVPN di Ubuntu 18.04 Bionic Beaver

  3. Cara Menginstal Node.js di Ubuntu 18.04 Bionic Beaver