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.
Konfigurasi Apache
Stop service Apache
1 | sudo systemctl stop apache2 |
Ubah port Apache dari 80 ke 8080
1 | sudo nano /etc/apache2/ports.conf |
Ubah Listen 80 menjadi Listen 8080
Ubah juga pada file virtual host
1 | sudo nano /etc/apache2/sites-available/000-default.conf |
Ubah VirtualHost *:80 menjadi VirtualHost *:8080
Start service Apache
1 2 | sudo systemctl daemon-reload sudo systemctl start apache2 |
Sekarang Apache berjalan pada port 8080, http://IP_SERVER:8080
Konfigurasi Varnish
Instalasi Varnish
1 | sudo apt-get install varnish |
Ubah port Varnish ke port 80
1 | sudo nano /etc/default/varnish |
Cari baris kode di bawah ini
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.
1 | sudo nano /etc/varnish/default.vcl |
Cari baris kode
1 2 3 4 | backend default { .host = "127.0.0.1"; .port = "8080"; } |
Ubah port Varnish pada konfigurasi service
1 | sudo nano /lib/systemd/system/varnish.service |
Cari baris kode
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
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
1 | sudo systemctl restart varnish |
Pengujian
Jalankan perintah curl ke http://IP atau http://domain
1 | curl -I http://10.0.8.175 |
Hasilnya
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: 0 Via: 1.1 varnish-v4 Accept-Ranges: bytes Connection: keep-alive |
Bandingkan hasilnya tanpa menggunakan Varnish
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.
1 | sudo systemctl restart varnish |
selamat mencoba 🙂
siang om, kasih tutor juga donk untuk install varnish di aapanel untuk apachenya