Cara Install Varnish dengan Apache di Ubuntu 16.04

Varnish merupakan perangkat lunak HTTP accelerator, membuat cache dari konten website dan menyimpannya di memori sehingga dapat mempercepat respon website. Varnish digunakan oleh website besar yang memiliki traffic tinggi seperti Wikipedia, The New York Times, The Guardian, Facebook, Twitter, Reddit, Vimeo, dan Tumblr. Pada tahun 2012 5 persen dari 10.000 website top dunia menggunakan Varnish.

-Cara Kerja-

Ketika visitor website membuka halaman, Varnish yang merespon di depan. Jika halaman yang diakses sudah tersedia cache, cache dari halaman tersebut yang ditampilkan. Jika belum ada, permintaan halaman diteruskan ke webserver seperti Apache atau Nginx, lalu hasilnya di kembalikan ke Varnish untuk dibuatkan cache dan ditampilkan ke visitor.

Diagram hubungan BrowserVarnishApache

-Konfigurasi Apache-

Stop service Apache

[INPUT]

1 sudo systemctl stop apache2

Ubah port Apache dari 80 ke 8080

[INPUT]

1 sudo nano /etc/apache2/ports.conf

Ubah *Listen 80* menjadi *Listen 8080*

Ubah juga pada file virtual host

[INPUT]

1 sudo nano /etc/apache2/sites-available/000-default.conf

Ubah *VirtualHost *:80* menjadi *VirtualHost *:8080*

Start service Apache

[INPUT]

1 2 sudo systemctl daemon-reload sudo systemctl start apache2

Sekarang Apache berjalan pada port 8080, *http://IP_SERVER:8080*

-Konfigurasi Varnish-

Instalasi Varnish

[INPUT]

1 sudo apt-get install varnish

Ubah port Varnish ke port 80

[INPUT]

1 sudo nano /etc/default/varnish

Cari baris kode di bawah ini

[INPUT]

1 2 3 4 5 DAEMON_OPTS=”-a :6081 \              -T localhost:6082 \              -f /etc/varnish/default.vcl \              -S /etc/varnish/secret \              -s malloc,256m”

Ubah *-a :6081* menjadi *-a :80*

Pastikan juga backend mengarah ke port Apache yang sudah diubah ke 8080.

[INPUT]

1 sudo nano /etc/varnish/default.vcl

Cari baris kode

[INPUT]

1 2 3 4 backend default { .host = “127.0.0.1”; .port = “8080”; }

Ubah port Varnish pada konfigurasi service

[INPUT]

1 sudo nano /lib/systemd/system/varnish.service

Cari baris kode

[INPUT]

1 ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :6081 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m

Ubah *-a :6081* menjadi *-a :80*

[INPUT]

1 ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m

Restart service varnish

[INPUT]

1 sudo systemctl restart varnish

-Pengujian-

Jalankan perintah curl ke http://IP atau http://domain

[INPUT]

1 curl -I http://10.0.8.175

Hasilnya

[INPUT]

1 2 3 4 5 6 7 8 9 10 HTTP/1.1 200 OK Date: Tue, 05 Sep 2017 02:08:45 GMT Server: Apache/2.4.18 (Ubuntu) Vary: Accept-Encoding Content-Type: text/html; charset=UTF-8 X-Varnish: 65548 Age: Via: 1.1 varnish-v4 Accept-Ranges: bytes Connection: keep-alive

Bandingkan hasilnya tanpa menggunakan Varnish

[INPUT]

1 2 3 4 5 6 7 8 9 HTTP/1.1 200 OK Date: Tue, 05 Sep 2017 02:10:21 GMT Server: Apache/2.4.18 (Ubuntu) Last-Modified: Sun, 19 Mar 2017 11:06:24 GMT ETag: “2c39-54b1366cd1c27” Accept-Ranges: bytes Content-Length: 11321 Vary: Accept-Encoding Content-Type: text/html

-Menghapus Cache-

Ada kalanya kita ingin menghapus cache Varnish misalnya pada saat melakukan perubahan pada website namun belum terlihat hasil perubahannya karena masih menampilkan website yang lama dari cache. Caranya yang saya gunakan dengan merestart varnish.

[INPUT]

1 sudo systemctl restart varnish

selamat mencoba 🙂

Leave a Reply

Your email address will not be published.