[Tutorial]: Instalasi Varnish di CentOS 6.5

Instalasi Varnish di CentOS 6.5

Author: Janarto Dwi Putra .


Instalasi Varnish di CentOS 6.5

Apa itu Varnish ?

Varnish  adalah sebuah aplikasi open source  HTTP reverse proxy yang seringkali  disebut juga sebagai HTTP accelerator atau web accelerator yang secara signifikan akan meningkatkan kinerja web. Varnish mempercepat sebuah situs web dengan menyimpan salinan dari halaman yang dilayani oleh server web yang pertama kali pengguna mengunjungi halaman tersebut. Saat berikutnya pengguna meminta halaman yang sama, Varnish akan melayani salinan bukannya meminta halaman dari server web.

Apa saja yang dibutuhkan untuk membuat  Varnish Caching Server?

  • Server dengan OS Linux

Dibutuhkan sebuah Server dengan sistem operasi berbasis open source untuk membuat Varnish Caching Server,  karena aplikasi Varnish hanya berjalan pada sistem operasi berbasis open source seperti CentOS, Ubuntu, Fedora ,dll.

  • Aplikasi Varnish Cache

Aplikasi yang digunakan untuk membuat Varnish Caching Server adalah aplikasi Varnish Cache, jadi pastikan untuk mempersiapkan aplikasi ini pada server.

  • Sebuah Server sebagai Backend Server

Varnish juga membutuhkan sebuah server yang berfungsi sebagai Backend Server. Backend Server ini bertugas untuk menyediakan konten kepada Varnish yang kemudian akan disalin oleh Varnish yang selanjutnya akan diakses oleh user.

  • Aplikasi Web Server

Untuk Aplikasi Web Server bisa menggunakan NginX , Apache, dll. Aplikasi ini berguna untuk menyediakan konten yang akan disalin oleh Varnish.

Instalasi Varnish

  1. Sebelumnya agar tidak terganggu saat melakukan instalasi dan konfigurasi, non aktifkan terlebih dahulu fungsi firewall pada server. Dalam OS CentOS maka ada 2 firewall yang perlu di non aktifkan yaitu selinux dan iptables.
  2. Unduh terlebih dahulu repository varnish
    # wget http://repo.varnish-cache.org/redhat/varnish-3.0/el6/noarch/varnish-release/varnish-release-3.0-1.el6.noarch.rpm
  3. Install Aplikasi Varnish
    # yum –y install varnish
  4. Install Aplikasi Web Server di Backend Server
    # yum –y install httpd
  5. Buat virtualhost pada file /etc/httpd/conf/httpd.conf di Backend Server
    <VirtualHost 192.168.0.111:8080>
             ServerAdmin root@localhost
             DocumentRoot /var/www/html
             ServerName 192.168.0.111
             ErrorLog /var/log/httpd/error_log
    </VirtualHost>
  6. Ubah beberapa parameter pada file /etc/httpd/conf/httpd.conf 
    Listen 192.168.0.111:8080 NameVirtualHost 192.168.0.111:8080
  7. Lakukan konfigurasi pada file /etc/sysconfig/varnish di Varnish Caching Server
    START=yes
    NFILES=131072
    MEMLOCK=82000
    NPROCS=”unlimited”
    RELOAD_VCL=1
    VARNISH_VCL_CONF= /etc/varnish/default.vcl
    VARNISH_LISTEN_ADDRESS = 192.168.0.103,192.168.0.111
    VARNISH_LISTEN_PORT = 80
    VARNISH_ADMIN_LISTEN_ADDRESS = 192.168.0.103
    VARNISH_ADMIN_LISTEN_PORT = 6082
    VARNISH_SECRET_FILE = /etc/varnish/secret
    VARNISH_MIN_THREADS = 1
    VARNISH_MAX_THREADS = 1000
    VARNISH_THREAD_TIMEOUT = 120
    VARNISH_STORAGE_FILE = /var/lib/varnish/varnish_storage.bin
    VARNISH_STORAGE_SIZE = 1G
    VARNISH_STORAGE=”file,${VARNISH_STORAGE_FILE},${VARNISH_STORAGE_SIZE}”
    VARNISH_TTL = 30
    DAEMON_OPTS=
    “-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \
    -f ${VARNISH_VCL_CONF} \
    -T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT} \
    -t ${VARNISH_TTL} \
    -w ${VARNISH_MIN_THREADS},${VARNISH_MAX_THREADS},${VARNISH_THREAD_TIMEOUT} \
    -u varnish -g varnish \
    -S ${VARNISH_SECRET_FILE} \
    -s ${VARNISH_STORAGE}
  8. Lakukan konfigurasi pada file /etc/varnish/default.vcl di Varnish Caching Server
    backend httpd {
                 .host = “192.168.0.111”;
                 .port = “8080”; 
                 .probe = {
                                 .url = “/”;
                                 .interval = 5s; 
                                 .timeout = 1s; 
                                 .window = 5; 
                                 .threshold = 3; 
                  } 
    }
    sub vcl_deliver { 
                              if (obj.hits > 0) { 
                              set resp.http.X-Cache = “HIT”; 
                              } else { 
                              set resp.http.X-Cache = “MISS”; 
                              } 
    }
  9. Install tools tambahan dari Apache untuk melakukan benchmarking
    # yum -y install httpd-tools

Hasil Pengujian

  1. Pengujian health-checking backend

    gambar1_Instalasi Varnish di CentOS 6.5

  2. Ujicoba dengan perintah curl -I http://192.168.0.103
    gambar2_Instalasi Varnish di CentOS 6.5
  3. Hasil dari penggunaan varnish
    gambar3_Instalasi Varnish di CentOS 6.5