Apa itu Varnish?
Varnish is a web accelerator written with performance and flexibility in mind. It's modern architecture gives it a significantly better performance than many of it's competing products. Varnish store web pages in memory so the web servers don't have to create the same web page over and over again. The web server only recreate a page when it is changed. Additionally Varnish can serve web pages much faster then any application server is capable of - giving the website a significant speed up.
Singkatnya, Varnish adalah sebuah aplikasi server yang berfungsi sebagai akselerator web dari segi performa dan fleksibilitas. Prinsip kerjanya dengan menyimpan halaman web di memori, sehingga web server tak perlu membuat/memuat halaman web terus-terusan, web server hanya akan membuat/memuat laman lagi jika terjadi perubahan pada halaman yang dimaksud.
Menginstall Varnish di Debian Server
1. Menambahkan Repo Varnish
Untuk menambahkan repo dari Varnish, jalankan terminal/konsole dan tambahkan repo versi Debian dari Varnish dengan mengetik:
[code language="bash"]
sudo curl http://repo.varnish-cache.org/debian/GPG-key.txt | apt-key add -
[/code]
kemudian
[code language="bash"]
sudo echo "deb http://repo.varnish-cache.org/debian/ $(lsb_release -s -c) varnish-2.1" >> /etc/apt/sources.list
[/code]
dan update repo anda dengan perintah
[code]sudo apt-get update[/code]
2. Menginstal Varnish
Cukup jalankan langkah pertama, dan ketik
[code]sudo apt-get install varnish[/code]
di terminal/konsole anda.
3. Mengatur setting Varnish
Secara default, file setting dari Varnish berada di
/etc/default/varnish
. Buka file ini dengan
vim
atau editor favorit anda. Cari baris dengan awalan DAEMON_OPTS:
- Ubah *:6081 menjadi *:80 sehingga hanya akan memeriksa port HTTP default.
- Ubah default.vcl menjadi nama lain, misalnya mysite.vcl (sekedar jaga-jaga)
Simpan file terebut. Nah berikut adalah isi dari file VCL saya (
/etc/varnish/mysite.vcl
):
[code]
## Redirect requests to Apache, running on port 8000 on localhost
backend apache {
.host = "127.0.0.1";
.port = "8000";
}
## Fetch
sub vcl_fetch {
## Remove the X-Forwarded-For header if it exists.
remove req.http.X-Forwarded-For;
## insert the client IP address as X-Forwarded-For. This is the normal IP address of the user.
set req.http.X-Forwarded-For = req.http.rlnclientipaddr;
## Added security, the "w00tw00t" attacks are pretty annoying so lets block it before it reaches our webserver
if (req.url ~ "^/w00tw00t") {
error 403 "Not permitted";
}
## Deliver the content
return(deliver);
}
## Deliver
sub vcl_deliver {
## We'll be hiding some headers added by Varnish. We want to make sure people are not seeing we're using Varnish.
## Since we're not caching (yet), why bother telling people we use it?
remove resp.http.X-Varnish;
remove resp.http.Via;
remove resp.http.Age;
## We'd like to hide the X-Powered-By headers. Nobody has to know we can run PHP and have version xyz of it.
remove resp.http.X-Powered-By;
}
[/code]
Simpan file VCL tersebut. Jangan jalankan Varnish anda dulu. Anda harus mengubah konfigurasi Apache anda.
4. Ubah setting Apache
Ubah file
/etc/apache2/ports.conf dari semula:
[code]
NameVirtualHost *:80
Listen 80
[/code]
menjadi:
[code]
NameVirtualHost *:8000
Listen 127.0.0.1:8000
[/code]
Simpan. Anda juga perlu mengubah konfigurasi Vhost anda, dari semula diawali:
[code]
<VirtualHost *:80>
[/code]
Ganti dengan:
[code]
<VirtualHost *:8000>
[/code]
5. Install modul RPAF (Reverse Proxy Add Forward) untuk Apache
Jalankan terminal/konsole dan ketik:
apt-get install libapache2-mod-rpaf
. Selesai install, silakan restart apache dengan perintah:
/etc/init.d/apache2 restart
. Cek dulu apakah Apache2 telah menggunakan port 8000 dengan perintah:
[code]
netstat -lp | grep apache2
[/code]
jika hasilnya kira-kira seperti ini:
tcp 0 0 localhost:8000 *:* LISTEN 4586/apache2
, berarti kita sudah bisa merestart daemon Varnish dengan:
[code]
/etc/init.d/varnish restart
[/code]
Periksa apakah Varnish sudah mendengarkan port yang anda definisikan dengan perintah
netstat -lp | grep varnish
. Kira-kira harunya keluar seperti ini:
[code]
tcp 0 0 *:www *:* LISTEN 4498/varnishd
tcp6 0 0 [::]:www [::]:* LISTEN 4498/varnishd
[/code]
Selesai, kini anda sudah memiliki web akselerator sekaligus reverse proxy berbasis Debian (dan seharusnya Ubuntu juga bisa).
Salam,
Luthfi Emka
PPTIK Universitas Negeri Semarang