Menu

Load Balancing SMTP dengan HAProxy

Load Balancing SMTP dengan HAProxy

Apa itu Load Balancing ??

Load balancing adalah konsep untuk menyeimbangkan beban pada infrastruktur teknologi informasi pada sebuah perusahaan atau instansi. agar seluruh departemen dapat memanfaatkan secara maksimal dan optimal. Jika skala jaringan makin besar maka semakin besar pula traffic yang didapatkan dan Load Balancing berguna sebagai penyeimbang beban apabila traffic semakin tinggi.

Salah satu solusi untuk Load Balancing yaitu HAProxy. HAProxy banyak digunakan karena cukup handal. Cara kerja HAProxy yaitu mendistribusikan traffic data ke berbagai server agar tidak terpusat sehingga tidak membebani.

Apa itu HAProxy ??

HAProxy sama seperti dengan Heartbeat hanya saja pada heartbeat tidak ada fasilitas berupa fitur Statistik menggunakan webbased html.

haproxy-pmodePada dasarnya HAProxy sendiri memiliki beberapa fitur yaitu :

  1. Merupakan loadbalancing yang dapat dibuat master dan slave load balancing, sehingga apabila load balacing utama gagal/fail, maka load balancing cadangan dapat otomatis bekerja.
  2. Support loadbalancing untuk beberapa server
  3. Health status, untuk cek status server, yaitu Jika server dalam datacenter mati, maka trafik ke server tersebut otomatis dihentikan
  4. Dapat untuk loadbalancing aplikasi yang tidak support loadbalancing, maksudnya adalah aplikasi yang mengatur sesi user di server bersangkutan seperti ecommerce, shopping, dll
  5. Ada statistik yang mudah dibaca

Bisakah SMTP dibuat Load Balancing ??

Tentu saja bisa, HAProxy bukan saja bisa memberikan load balancing untuk web server saja seperti apache, akan tetapi untuk aplikasi SMTP seperti Postfix pun bisa, dalam tulisan ini saya menggunakan Linux SLES 11 SP3 sebagai uji coba.

Topologi

SMTP-HAPROXY

Instalasi HAProxy

Pada SLES, paket HAProxy terdapat pada repository yang ada pada http://software.opensuse.org/search. Caranya buka website tersebut lalu ketikkan paket yang akan di install (HAProxy). Pilih salah satu repositrory yang ada. kemudian tambahkan ke SLES. Masukkan perintah berikut :

zypper ar http://download.opensuse.org/repositories/home:/KGronlund/SLE_11_SP3/ haproxy
zypper ref
zypper in haproxy

Instalasi & Konfigurasi HAProxy Server

Setelah di install, HAProxy harus di konfigurasi. File konfigurasi HAProxy terdapat pada direktori “/etc/haproxy/haproxy.cfg“, Berikut konfigurasi yang ada pada file tersebut :

# this config needs haproxy-1.1.28 or haproxy-1.2.1

global
    user daemon
    group daemon
    daemon
    log 127.0.0.1 daemon
    maxconn 4096
    chroot /var/lib/haproxy

defaults
    log global
    retries 2
    timeout connect 3000
    timeout server 5000
    timeout client 5000

frontend ft_smtp
  bind 0.0.0.0:25
  mode tcp
  no option http-server-close
  timeout client 1m
  log global
  option tcplog
  default_backend bk_postfix

backend bk_postfix
  mode tcp
  no option http-server-close
  log global
  option tcplog
  timeout server 1m
  timeout connect 5s
  server postfix1 192.168.100.121:25 check
  server postfix2 192.168.100.122:25 check

Instalasi & Konfigurasi SMTP Server

Install SMTP server dalah hal ini saya menggunakan postfix sebagai SMTP Server.

zypper in postfix

Buka “/etc/postfix/main.cf“, lalu edit skrip berikut :

inet_interfaces = localhost

Ubah menjadi :

inet_interfaces = all

Fungsinya agar semua interface yang terhubung pada Server SMTP dapat mengakses server SMTP. Setelah selesai Restart Service Postfix.

service postfix restart

Uji Coba

Akses IP Haproxy dengan port 25 menggunakan telnet untuk mengecek apakah sudah terhubung atau belum :

smtp1-oke smtp2-oke

 

Loh ko Hostnamenya beda???, Hostname nya memang sengaja dibedakan untuk membuktikan apakah Load Balancing sudah berjalan dengan semestinya. Semoga bermanfaat :-).

Muhammad Dhenandi

One Comment

  • riki says:

    Bagaimana ya caranya untuk mengirm email melalui php atau bahasa pemrograman lain?

    jadi topoliginya -> client -> webserver (recive message) -> haproxy -> mail server?

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Menu