Varnish adalah server proxy yang berfokus pada caching HTTP yang dirancang sebagai akselerator HTTP dan dapat bertindak sebagai reverse proxy untuk web server Anda (Apache atau Nginx). Varnish telah digunakan untuk situs web high-profile dan lalu lintas tinggi, termasuk Wikipedia, The Guardian, dan The New York Times.
Dalam tutorial ini, kami akan menunjukkan kepada Anda cara menginstal dan mengkonfigurasi Varnish HTTP accelerator sebagai reverse proxy untuk web server Apache.
Apache akan berjalan di bawah port HTTP non-standar (berjalan pada port 8080
). Dan Varnish akan berjalan sebagai reverse proxy pada port HTTP 80. Untuk panduan ini, kita akan menggunakan server Ubuntu 18.04 LTS.
Apa yang akan kita lakukan?
- Instal Web server Apache
- Ubah Port Default Apache
- Install Varnish
- Konfigurasikan Varnish
- Testing konfigurasi Varnish
Langkah 1 – Instal server Web Apache
Untuk memulai, instal server web Apache. Secara default, ini tersedia di repositori Ubuntu. Perbarui repositori Ubuntu dan kemudian instal Apache menggunakan perintah apt
.
apt update apt install -y apache2
Setelah instalasi selesai, start Apache dan aktifkan untuk mulai secara otomatis pada saat boot sistem menggunakan perintah systemctl berikut.
systemctl start apache2 systemctl enable apache2
Pada poin ini, Web server Apache telah diinstal.
Selanjutnya, untuk memungkinkan semua orang mengakses web server, kita harus mengizinkan akses HTTP dan HTTPS pada aturan firewall. Secara default, Ubuntu hadir dengan paket firewall bernama UFW.
Buka port SSH, HTTP dan HTTPS baru menggunakan perintah UFW berikut.
ufw allow ssh ufw allow http ufw allow https
Sekarang mulai layanan firewall dan aktifkan untuk meluncurkan secara otomatis saat boot sistem.
ufw enable
Ketik ‘y‘ dan tekan Enter untuk mengonfirmasi Port baru untuk HTTP, HTTPS, dan SSH sehingga dapat diakses dari luar jaringan.
Jika Anda ingin menguji web server Apache, Anda dapat menggunakan perintah netstat dan memastikan apache berjalan pada port 80.
netstat -tulnpt
Atau Anda dapat menggunakan perintah curl
berikut.
curl -I serverIP_atau_domain
Langkah 2 – Ubah Port Default Apache
Dalam tutorial ini, kita akan menggunakan Apache sebagai server backend, dan kita juga akan membuat Apache tidak akan berjalan di port HTTP standar 80
. Server web Apache akan berjalan pada port 8080 sebagai backend, dan port HTTP standar 80 akan digunakan oleh ‘ Varnish’.
Untuk mengubah port apache default, kita perlu mengedit konfigurasi apache ‘ports.conf
‘ dan semua konfigurasi host virtual di bawah direktori ‘sites-available’.
Kita navigasikan ke direktori konfigurasi Apache dengan perintah cd
.
cd /etc/apache2
Ganti port ‘80
‘ dengan ‘8080
‘ di konfigurasi Apache 'ports.conf
‘ dan semua file host virtual di bawah direktori ‘sites-available
‘. Kita dapat melakukannya dengan menjalankan perintah sed
berikut.
sed -i -e 's/80/8080/g' ports.conf sed -i -e 's/80/8080/g' sites-available/*
Selanjutnya, uji konfigurasi Apache dan pastikan tidak ada kesalahan, kemudian restart layanan Apache.
apachectl configtest systemctl restart apache2
Sekarang Apache berjalan di bawah port HTTP ‘8080’, periksa menggunakan perintah ‘netstat’ seperti yang ditunjukkan di bawah ini.
netstat -plntu
Pastikan Anda mendapatkan hasilnya seperti di bawah ini.
Pada hasil output menunjukkan bahwa web server Apache berjalan di port ‘8080’.
Langkah 3 – Instal Varnish HTTP Accelerator
Pada langkah ini, kita akan menginstal Varnish dari repositori Ubuntu. Dan untuk panduan ini, kita akan menggunakan Varnish 5.2
.
Instal varnish menggunakan perintah apt berikut.
apt install -y varnish
Setelah instalasi selesai, mulai Varnish dan aktifkan untuk mulai secara otomatis saat boot sistem.
systemctl start varnish systemctl enable varnish
Secara default, Varnish berjalan di port ‘6081
‘ untuk alamat public dan ‘6082
‘ untuk alamat localhost. Periksa menggunakan perintah netstat di bawah ini.
netstat -plntu
Dan Anda akan mendapatkan port varnish default.
Langkah 4 – Konfigurasi Varnish sebagai Reverse Proxy untuk Apache
Pada langkah ini, kita akan mengkonfigurasi varnish di bagian depan server web Apache. Varnish akan berjalan di bawah port http 80, dan setiap permintaan dari klien akan ditangani olehnya, sebelum dikirim ke server web Apache yang berjalan di port 8080
.
Konfigurasi Backend
Pergi ke direktori konfigurasi ‘varnish’ dan backup file default ‘default.vcl
‘.
cd /etc/varnish/ cp default.vcl default.vcl.aseli
Edit konfigurasi varnish ‘default.vcl’ menggunakan editor nano.
nano default.vcl
Tentukan konfigurasi ‘backend’. Backend untuk pengaturan kita adalah Apache, dan berjalan pada port 8080
. Jadi konfigurasi varnish untuk pengaturan apache kita harus sebagai berikut:
backend default { .host = "127.0.0.1"; .port = "8080"; }
Simpan dan keluar.
Jalankan Varnish di Port 80
Selanjutnya, kita perlu mengubah port default varnish. Port default untuk varnish adalah ‘6081
‘ dan ‘6082
‘, dan kita perlu mengubah port tersebut ke port HTTP 80
(hanya untuk alamat public).
Edit konfigurasi parameter varnish di direktori ‘/etc/default
‘.
cd /etc/default/ nano varnish
Edit pada bagian ‘DAEMON_OPTS
‘, ubah default port ‘6081
‘ dengan port standard untuk HTTP port ’80’ .
DAEMON_OPTS="-a :80 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m"
Simpan dan keluar.
Selanjutnya, kita perlu mengedit file layanan varnish ‘varnish.service
‘. Buka direktori ‘/lib/systemd/system
‘ dan edit file layanan menggunakan vim
.
cd /lib/systemd/system/ vim varnish.service
Pada baris ‘ExecStart
‘, ubah perintah mulai varnish seperti di bawah ini.
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
Simpan dan keluar.
Reload konfigurasi systemd dan kemudian restart Varnish.
systemctl daemon-reload systemctl restart varnish
Sekarang periksa varnish dan pastikan berjalan pada port HTTP 80.
netstat -plntu
Jadi Varnish sekarang berjalan di bawah port HTTP 80 sebagai front-end untuk web server Apache, yang ada di port 8080.
Langkah 5 – Testing Konfigurasi
Uji menggunakan perintah curl
.
curl -I nama_domain
Pastikan Anda mendapatkan HTTP header seperti yang ditunjukkan di bawah ini.
Periksa varnish log menggunakan perintah ‘varnishncsa
‘.
varnishncsa
Dan kami mendapatkan log hanya dari log akses Apache.
Instalasi dan konfigurasi Varnish untuk server web Apache telah selesai.