Blog Emka

Portal tutorial linux, pemrograman sistem informasi, computer security & informasi santri Indonesia

Debian, Ubuntu

Panduan Menginstall Varnish (Web Accelerator/Reverse Proxy) di Debian/Ubuntu

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:

sudo curl http://repo.varnish-cache.org/debian/GPG-key.txt | apt-key add -

kemudian

sudo echo "deb http://repo.varnish-cache.org/debian/ $(lsb_release -s -c) varnish-2.1" >> /etc/apt/sources.list

dan update repo anda dengan perintah

sudo apt-get update

2. Menginstal Varnish
Cukup jalankan langkah pertama, dan ketik

sudo apt-get install varnish

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

):

## 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;
}

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:

NameVirtualHost *:80
Listen 80

menjadi:

NameVirtualHost *:8000
Listen 127.0.0.1:8000

Simpan. Anda juga perlu mengubah konfigurasi Vhost anda, dari semula diawali:

<VirtualHost *:80>

Ganti dengan:

<VirtualHost *:8000>

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:

netstat -lp | grep apache2

jika hasilnya kira-kira seperti ini:

tcp        0      0 localhost:8000          *:*                     LISTEN      4586/apache2

, berarti kita sudah bisa merestart daemon Varnish dengan:

/etc/init.d/varnish restart

Periksa apakah Varnish sudah mendengarkan port yang anda definisikan dengan perintah

netstat -lp | grep varnish

. Kira-kira harunya keluar seperti ini:

tcp        0      0 *:www                   *:*                     LISTEN      4498/varnishd
tcp6       0      0 [::]:www                [::]:*                  LISTEN      4498/varnishd

Selesai, kini anda sudah memiliki web akselerator sekaligus reverse proxy berbasis Debian (dan seharusnya Ubuntu juga bisa).

Salam,

Luthfi Emka
PPTIK Universitas Negeri Semarang

6 Comments

  1. kalo hosting yang pake varnish di sanisawebhost.com

  2. kenapa bang kok port numbernya di ganti menjadi 8000 bukanya default buat http 80? saya tunggu balasanya, makasih

Leave a Reply

Theme by Anders Norén

%d bloggers like this: