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 New York Times.
Dalam tutorial ini, saya akan menunjukkan cara menginstal dan mengkonfigurasi akselerator HTTP varnish sebagai proxy terbalik untuk server web Nginx. Server web asli Nginx akan berjalan di bawah port HTTP non-standar 8080. Dan Varnish akan berjalan sebagai proxy terbalik pada port HTTP 80. Untuk panduan ini, kita akan menggunakan server Ubuntu 16.04.
Apa yang akan kami lakukan
- Instal Nginx di Ubuntu 16.04
- Konfigurasi Nginx pada Port 8080
- Instal Varnish di Ubuntu 16.04
- Konfigurasikan Varnish sebagai Proxy Terbalik untuk Nginx
- Konfigurasikan Firewall UFW
- Pengujian
Prasyarat
- Ubuntu 16.04
- Keistimewaan Root
Langkah 1 - Instal Nginx di Ubuntu 16.04
Langkah pertama yang harus kita lakukan untuk tutorial ini adalah menginstal Nginx ke sistem Ubuntu 16.04. Pada langkah ini, kita akan menginstal Nginx (tersedia di repositori resmi Ubuntu), kemudian memulai layanan, dan kemudian mengaktifkannya untuk diluncurkan setiap kali sistem boot.
Instal Nginx dari repositori Ubuntu menggunakan perintah apt.
sudo apt install nginx -y
Setelah penginstalan selesai, mulai Nginx dan aktifkan untuk diluncurkan setiap kali saat sistem boot menggunakan perintah systemctl di bawah ini.
systemctl start nginx
systemctl enable nginx
Server web Nginx berjalan pada port HTTP default - periksa menggunakan netstat dan pastikan port HTTP digunakan oleh Nginx.
netstat -plntu
Langkah 2 - Konfigurasi Nginx pada Port 8080
Pada langkah ini, kita akan mengonfigurasi nginx agar berjalan di bawah port HTTP non-standar 8080. Untuk tujuan ini, kita perlu mengedit file host virtual di bawah direktori 'sites-available'.
Buka direktori konfigurasi Nginx dan edit file host virtual 'default' menggunakan vim.
cd /etc/nginx/
vim sites-available/default
Ubah nilai baris 'dengarkan' menjadi 8080.
listen 8080 default_server;
listen [::]:8080 default_server;
Simpan dan keluar.
Sekarang uji konfigurasi Nginx dan pastikan tidak ada kesalahan. Kemudian restart layanan.
nginx -t
systemctl restart nginx
Sekarang uji nginx lagi menggunakan netstat, dan pastikan itu berjalan pada port HTTP non-standar 8080.
netstat -plntu
Server web Nginx telah diinstal, dan sekarang berjalan pada port 8080.
Langkah 3 - Instal Varnish di Ubuntu 16.04
Sekarang kita perlu menginstal Varnish pada sistem. Kami dapat menginstal versi terbaru alat dari sumbernya. Dan untuk panduan ini, kita akan menginstal varnish dari repositori Ubuntu - Varnish v4.
Instal pernis menggunakan perintah apt di bawah ini.
sudo apt install varnish -y
Sekarang mulai pernis dan aktifkan untuk diluncurkan saat boot sistem menggunakan perintah systemctl di bawah ini.
systemctl start varnish
systemctl enable varnish
Secara default, varnish akan menggunakan port 6081 untuk akses publik, dan port 6082 untuk antarmuka web admin varnish. Periksa menggunakan perintah netstat, dan pastikan port tersebut ada dalam daftar.
netstat -plntu
Akselerator HTTP Varnish telah diinstal.
Langkah 4 - Konfigurasi Varnish sebagai Proxy Terbalik untuk Nginx
Dalam tutorial ini, kita akan menggunakan Varnish sebagai proxy terbalik untuk server web Nginx. Varnish akan berjalan pada port HTTP 80, dan server web Nginx pada port HTTP 8080 (Selesai).
Pada langkah ini, kita akan mengkonfigurasi Varnish untuk Nginx, menentukan server backend, kemudian mengubah varnish agar berjalan di bawah HTTP port 80.
Sekarang masuk ke direktori konfigurasi varnish dan edit file 'default.vcl'.
cd /etc/varnish
vim default.vcl
Pada baris backend, tentukan konfigurasi seperti di bawah ini.
backend default {
.host = "127.0.0.1";
.port = "8080";
}
Simpan dan keluar.
Catatan:
- .host =Alamat server web backend.
- .port =Server web yang didukung berjalan.
Konfigurasi backend telah selesai.
Selanjutnya, kita perlu mengkonfigurasi Varnish agar berjalan di bawah HTTP port 80. Buka direktori '/etc/default' dan edit file konfigurasi varnish 'varnish'.
cd /etc/default/
vim varnish
Pada baris 'DAEMON_OPTS', ubah port default 6081 menjadi port HTTP 80.
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"
Simpan dan keluar.
Sekarang edit file layanan pernis di direktori '/lib/systemd/system'. Buka direktori sistem systemd dan edit file varnish.service.
cd /lib/systemd/system
vim varnish.service
Pada baris 'ExecStart', ubah port varnish 6081 menjadi port HTTP 80.
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 systemd dan mulai ulang pernis.
systemctl daemon-reload
systemctl restart varnish
Setelah konfigurasi selesai, centang Varnish menggunakan perintah netstat di bawah ini.
netstat -plntu
Pastikan Varnish berjalan pada HTTP port 80 seperti yang ditunjukkan di bawah ini.
Konfigurasi pernis sebagai proxy terbalik untuk Nginx telah selesai.
Langkah 5 - Konfigurasi Firewall UFW
Sistem Ubuntu dilengkapi dengan firewall default yang dapat dibaca manusia bernama 'UFW'. Jika Anda tidak memiliki paket tersebut, instal menggunakan perintah apt di bawah ini.
sudo apt install ufw
Pada langkah ini, kita akan mengaktifkan firewall dan membuka port baru untuk SSH, HTTP, dan HTTPS.
Jalankan perintah ufw di bawah ini.
ufw allow ssh
ufw allow http
ufw allow https
Sekarang aktifkan firewall dan aktifkan untuk diluncurkan setiap saat saat boot.
ufw enable
Ketik 'y' dan tekan Enter untuk mengonfirmasi.
Firewall UFW diaktifkan, dan HTTP serta port HTTPS sekarang dapat diakses dari jaringan luar.
Langkah 6 - Pengujian
- Menguji menggunakan cURL
Menguji pernis menggunakan perintah curl, sehingga kita dapat melihat header HTTP dari server.
curl -I hakase-labs.co
Dan Anda akan mendapatkan hasil HTTP Header 'Via:1.1 varnish-v4' seperti gambar di bawah ini.
- Menguji menggunakan Browser Web
Buka browser web Anda dan ketik URL atau alamat server berikut. Milik saya adalah: http://hakase-labs.co
Pastikan Anda mendapatkan halaman default Nginx seperti di bawah ini.
- Menguji Log Pernis
Varnish menyediakan beberapa perintah untuk mengelola dan melihat log. Kami akan menggunakan 'varnishncsa' untuk mendapatkan log akses varnish.
varnishncsa
Dan Anda akan mendapatkan hasil seperti gambar di bawah ini.
Instalasi dan konfigurasi pernis sebagai proxy terbalik untuk server web Nginx telah selesai.