Varnish adalah server proxy yang berfokus pada caching HTTP. Ini dirancang sebagai akselerator HTTP, dan dapat bertindak sebagai proxy terbalik untuk server web Anda (Apache atau Nginx). Varnish telah digunakan untuk situs web profil tinggi dan lalu lintas tinggi, termasuk Wikipedia, The Guardian, dan The New York Times.
Dalam tutorial ini, kami akan menunjukkan cara menginstal dan mengkonfigurasi akselerator HTTP Varnish sebagai proxy terbalik untuk server web Apache. Server web Apache yang sebenarnya akan berjalan di bawah port HTTP non-standar (berjalan pada port 8080). Dan Varnish akan berjalan sebagai reverse proxy pada HTTP port 80. Untuk panduan ini, kita akan menggunakan server Ubuntu 16.04.
Apa yang akan kami lakukan
- Instal server Web Apache
- Ubah Port Default Apache
- Pasang Pernis
- Konfigurasikan Pernis
- Uji penyiapan
Prasyarat
- Ubuntu 16.04
- Hak istimewa root
Langkah 1 - Instal server Web Apache
Untuk memulai, instal server web Apache. Secara default, ini tersedia di repositori Ubuntu.
Perbarui repositori Ubuntu lalu instal Apache menggunakan perintah apt.
sudo apt update
sudo apt install -y apache2
Setelah penginstalan selesai, jalankan layanan Apache dan aktifkan untuk berjalan secara otomatis pada saat boot sistem menggunakan perintah systemctl berikut.
systemctl start apache2
systemctl enable apache2
Server web Apache telah diinstal.
Selanjutnya, untuk mengizinkan semua orang mengakses server web, kita harus mengizinkan HTTP dan HTTPS pada aturan firewall kita. 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 diluncurkan secara otomatis saat boot sistem.
ufw enable
Ketik 'y' dan tekan Enter untuk mengonfirmasi.
Port baru untuk http, https, dan ssh telah dibuka, dan dapat diakses dari luar jaringan.
Jika Anda ingin menguji web server Apache, Anda dapat menggunakan perintah netstat dan pastikan apache berjalan di bawah port 80.
netstat -plntu
Atau Anda dapat menggunakan perintah curl berikut.
curl -I hakase-labs.co
Anda harus mendapatkan hasil seperti yang ditunjukkan di bawah ini.
Langkah 2 - Ubah Port Default Apache
Dalam tutorial ini, kita akan menggunakan Apache sebagai server backend, dan tidak akan berjalan di bawah standar http port 80. Web server Apache akan berjalan pada port 8080 sebagai backend, dan standar http port 80 akan digunakan oleh ' Pernis'.
Untuk mengubah port default apache, kita perlu mengedit konfigurasi apache 'ports.conf' dan semua konfigurasi virtual host di bawah direktori 'sites-available'.
Buka direktori konfigurasi Apache.
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 error, lalu restart service 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 hasil seperti di bawah ini.
Jadi Anda dapat melihat server web Apache berjalan pada port '8080'.
Langkah 3 - Instal Akselerator HTTP Varnish
Pada langkah ini, kita akan menginstal Varnish dari repositori Ubuntu. Dan untuk panduan ini, kita akan menggunakan pernis 4.
Instal pernis menggunakan perintah apt berikut.
sudo apt install -y varnish
Setelah penginstalan selesai, mulai Varnish dan aktifkan untuk diluncurkan secara otomatis saat boot sistem.
systemctl start varnish
systemctl enable varnish
Varnish telah diinstal pada sistem Ubuntu 16.04.
Secara default, ini berjalan di bawah port '6081' untuk alamat publik 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 Proxy Terbalik untuk Apache
Pada langkah ini, kita akan mengkonfigurasi varnish di bagian depan web server Apache. Varnish akan berjalan di bawah http port 80, dan setiap permintaan dari klien akan ditangani olehnya, sebelum dikirim ke server web Apache yang berjalan di port 8080.
- Konfigurasi Backend
Buka direktori konfigurasi 'varnish' dan buat cadangan file default 'default.vcl'.
cd /etc/varnish/
cp default.vcl default.vcl.aseli
Edit konfigurasi varnish 'default.vcl' menggunakan editor vim.
vim default.vcl
Tentukan konfigurasi 'backend' pada baris 16. Backend untuk setup kita adalah Apache, dan dijalankan pada port 8080. Jadi konfigurasi varnish untuk setup apache kita adalah sebagai berikut:
backend default {
.host = "127.0.0.1";
.port = "8080";
}
Simpan dan keluar.
- Menjalankan Pernis di Port 80
Selanjutnya, kita perlu mengubah port varnish default. Port default untuk varnish adalah '6081' dan '6082', dan kita perlu mengubah port tersebut ke port http 80 (hanya untuk alamat publik).
Edit konfigurasi parameter varnish di direktori '/etc/default'.
cd /etc/default/
vim varnish
Edit baris 'DAEMON_OPTS', ubah port default '6081' untuk alamat publik dengan port http standar '80' seperti yang ditunjukkan di bawah ini.
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 varnish start 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.
Muat ulang konfigurasi layanan systemd lalu mulai ulang pernis.
systemctl daemon-reload
systemctl restart varnish
Sekarang periksa varnish dan pastikan itu berjalan pada port http 80.
netstat -plntu
Jadi Varnish sekarang berjalan di bawah port http 80 sebagai front-end untuk server web Apache, yang ada di port 8080.
Langkah 5 - Pengujian
Uji menggunakan perintah curl.
curl -I hakase-labs.co
Pastikan Anda mendapatkan header http seperti yang ditunjukkan di bawah ini.
Memeriksa dari browser web, URL server pengujian saya adalah: http://hakase-labs.co/. Pilih URL server Anda di sini.
Dan kami masih mendapatkan konten Apache.
Periksa log pernis menggunakan perintah 'varnishncsa'.
varnishncsa
Dan kami mendapatkan log hanya dari log akses Apache.
Instalasi dan konfigurasi pernis untuk server web Apache telah selesai.
Referensi
- Tembolok Pernis
- HTTPD Apache