Varnish Cache adalah proxy HTTP terbalik yang kuat yang digunakan untuk mempercepat aplikasi web yang tersedia sebagai perangkat lunak Open-Source. Varnish menyimpan konten statis dan dinamis. Ini menangani semua permintaan masuk sebelum mereka mendarat di backend server web Anda. Itu duduk di antara browser web dan server web Apache atau Nginx. Cache pernis menyimpan semua permintaan halaman yang masuk dalam memori sehingga server web tidak perlu membuat halaman web yang sama berulang-ulang.
Dalam posting ini, kami akan menunjukkan cara menginstal cache Varnish dengan Apache dan Nginx di CentOS 8.
Prasyarat
- Server yang menjalankan CentOS 8.
- Kata sandi root dikonfigurasi di server Anda.
Memulai
Sebelum memulai, disarankan untuk memperbarui paket sistem Anda ke versi terbaru. Anda dapat memperbaruinya dengan menjalankan perintah berikut:
dnf update -y
Setelah semua paket diperbarui, Anda dapat melanjutkan ke langkah berikutnya.
Instal Pernis
Secara default, paket Varnish disertakan dalam repo default CentOS 8. Anda dapat menginstalnya dengan menjalankan perintah berikut:
dnf install varnish -y
Setelah menginstal Varnish, edit file konfigurasi default Varnish dan tentukan alamat yang didukung server web Nginx atau Apache.
nano /etc/varnish/default.vcl
Ubah baris berikut:
backend default { .host = "127.0.0.1"; .port = "8080"; }
Simpan dan tutup file setelah Anda selesai.
Konfigurasikan Pernis
Secara default, Varnish mendengarkan pada port 6081. Jadi, Anda perlu mengonfigurasi Varnish untuk mendengarkan pada port 80. Anda dapat mengonfigurasinya dengan mengedit file varnish.service:
nano /lib/systemd/system/varnish.service
Temukan baris berikut:
ExecStart=/usr/sbin/varnishd -a :6081 -f /etc/varnish/default.vcl -s malloc,256m
Ganti dengan baris berikut:
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m
Simpan dan tutup file, lalu muat ulang daemon systemd untuk menerapkan perubahan:
systemctl daemon-reload
Selanjutnya, mulai layanan Varnish dan aktifkan untuk memulai pada sistem reboot dengan perintah berikut:
systemctl start varnish
systemctl enable varnish
Anda juga dapat memeriksa status Varnish dengan perintah berikut:
systemctl status varnish
Anda akan mendapatkan output berikut:
? varnish.service - Varnish Cache, a high-performance HTTP accelerator Loaded: loaded (/usr/lib/systemd/system/varnish.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2021-03-12 04:17:32 EST; 4s ago Process: 6391 ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m (code=exited, status=0/SUCCESS) Main PID: 6392 (varnishd) Tasks: 217 Memory: 99.5M CGroup: /system.slice/varnish.service ??6392 /usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m ??6402 /usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m Mar 12 04:17:32 masternode systemd[1]: Starting Varnish Cache, a high-performance HTTP accelerator... Mar 12 04:17:32 masternode varnishd[6391]: Debug: Version: varnish-6.0.6 revision 29a1a8243dbef3d973aec28dc90403188c1dc8e7 Mar 12 04:17:32 masternode varnishd[6391]: Debug: Platform: Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit Mar 12 04:17:32 masternode varnishd[6392]: Version: varnish-6.0.6 revision 29a1a8243dbef3d973aec28dc90403188c1dc8e7 Mar 12 04:17:32 masternode varnishd[6392]: Platform: Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit Mar 12 04:17:32 masternode varnishd[6391]: Debug: Child (6402) Started Mar 12 04:17:32 masternode varnishd[6392]: Child (6402) Started Mar 12 04:17:32 masternode varnishd[6392]: Child (6402) said Child starts Mar 12 04:17:32 masternode systemd[1]: Started Varnish Cache, a high-performance HTTP accelerator.
Pada titik ini, Varnish dimulai dan mendengarkan pada port 80. Anda dapat memeriksanya dengan perintah berikut:
ss -antpl | grep varnishd
Anda akan mendapatkan output berikut:
LISTEN 0 10 127.0.0.1:34977 0.0.0.0:* users:(("varnishd",pid=1532,fd=11)) LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("cache-main",pid=1542,fd=6),("varnishd",pid=1532,fd=6)) LISTEN 0 128 [::]:80 [::]:* users:(("cache-main",pid=1542,fd=7),("varnishd",pid=1532,fd=7)) LISTEN 0 10 [::1]:34909 [::]:* users:(("varnishd",pid=1532,fd=10))
Pada titik ini, Varnish diinstal dan dikonfigurasi. Sekarang Anda dapat melanjutkan ke langkah berikutnya.
Instal dan Konfigurasi Nginx agar Bekerja dengan Varnish
Pertama, Anda perlu menginstal paket Nginx ke server Anda. Anda dapat menginstalnya dengan perintah berikut:
dnf install nginx -y
Setelah terinstal, Anda perlu mengubah port mendengarkan Nginx dari 80 menjadi 8080. Anda dapat melakukannya dengan mengedit file konfigurasi default Nginx:
nano /etc/nginx/nginx.conf
Ubah baris berikut:
listen 8080 default_server; listen [::]:8080 default_server;
Simpan dan tutup file kemudian verifikasi Nginx untuk kesalahan sintaks menggunakan perintah berikut:
nginx -t
Anda akan mendapatkan output berikut:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Selanjutnya, mulai layanan Nginx dan aktifkan untuk memulai saat reboot sistem:
systemctl start nginx
systemctl enable nginx
Anda juga dapat memverifikasi port mendengarkan Nginx dengan perintah berikut:
ss -antpl | grep 8080
Anda akan mendapatkan output berikut:
LISTEN 0 128 0.0.0.0:8080 0.0.0.0:* users:(("nginx",pid=5569,fd=8),("nginx",pid=5568,fd=8)) LISTEN 0 128 [::]:8080 [::]:* users:(("nginx",pid=5569,fd=9),("nginx",pid=5568,fd=9))
Pada titik ini, cache Varnish diinstal dan dikonfigurasi untuk meneruskan semua permintaan yang datang pada port 80 ke server web Nginx yang mendengarkan pada port 8080.
Anda dapat memverifikasi apakah cache Varnish berfungsi atau tidak dengan perintah berikut:
curl -I http://localhost
Anda akan mendapatkan output berikut:
HTTP/1.1 200 OK Server: nginx/1.14.1 Date: Fri, 12 Mar 2021 09:18:32 GMT Content-Type: text/html Content-Length: 4057 Last-Modified: Mon, 07 Oct 2019 21:16:24 GMT ETag: "5d9bab28-fd9" X-Varnish: 2 Age: 0 Via: 1.1 varnish (Varnish/6.0) Accept-Ranges: bytes Connection: keep-alive
Instal dan Konfigurasi Apache untuk Bekerja dengan Varnish
Pertama, Anda perlu menginstal paket server web Apache ke sistem Anda. Anda dapat menginstalnya dengan perintah berikut:
dnf install httpd -y
Setelah menginstal Apache, edit file konfigurasi default Apache dan ubah port mendengarkan dari 80 menjadi 8080.
nano /etc/httpd/conf/httpd.conf
Ubah baris berikut:
Listen 8080
Simpan dan tutup file kemudian mulai layanan Apache dan aktifkan untuk memulai pada sistem reboot dengan perintah berikut:
systemctl start httpd
systemctl enable httpd
Anda juga dapat memverifikasi port mendengarkan Apache dengan perintah berikut:
ss -antpl | grep httpd
Anda akan mendapatkan output berikut:
LISTEN 0 128 *:8080 *:* users:(("httpd",pid=7556,fd=4),("httpd",pid=7555,fd=4),("httpd",pid=7554,fd=4),("httpd",pid=7552,fd=4))
Pada titik ini, cache Varnish diinstal dan dikonfigurasi untuk meneruskan semua permintaan yang datang pada port 80 ke server web Apache yang mendengarkan pada port 8080.
Anda dapat memverifikasi apakah cache Varnish berfungsi atau tidak dengan perintah berikut:
curl -I http://localhost
Anda akan mendapatkan output berikut:
Date: Fri, 12 Mar 2021 09:21:14 GMT Server: Apache/2.4.37 (centos) Content-Location: index.html.zh-CN Vary: negotiate,accept-language TCN: choice Last-Modified: Fri, 14 Jun 2019 03:37:43 GMT ETag: "fa6-58b405e7d6fc0;5bd5365602e05" Accept-Ranges: bytes Content-Length: 4006 Content-Type: text/html; charset=UTF-8 Content-Language: zh-cn X-Varnish: 2 Age: 0 Via: 1.1 varnish (Varnish/6.0) Connection: keep-alive
Bekerja dengan Baris Perintah Varnish
Varnish hadir dengan beberapa utilitas berguna yang membantu Anda memantau dan mengontrol Varnish.
varnishadm adalah utilitas baris perintah yang digunakan untuk membuat daftar backend yang dikonfigurasi.
varnishadm
Anda akan melihat output berikut:
200 ----------------------------- Varnish Cache CLI 1.0 ----------------------------- Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit varnish-6.0.6 revision 29a1a8243dbef3d973aec28dc90403188c1dc8e7 Type 'help' for command list. Type 'quit' to close CLI session.
Sekarang, jalankan perintah berikut untuk membuat daftar semua backend:
varnish> backend.list
Anda akan melihat output berikut:
200 Backend name Admin Probe Last updated boot.default probe Healthy (no probe) Sat, 13 Mar 2021 03:00:02 GMT
log pernis
Utilitas varnishlog digunakan untuk menampilkan log dari semua permintaan pengguna.
varnishlog
Anda akan mendapatkan output berikut:
* << BeReq >> 6 - Begin bereq 5 fetch - VCL_use boot - Timestamp Start: 1615604631.507187 0.000000 0.000000 - BereqMethod GET - BereqURL / - BereqProtocol HTTP/1.1 - BereqHeader Host: 69.87.218.214 - BereqHeader Upgrade-Insecure-Requests: 1 - BereqHeader User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36 - BereqHeader Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 - BereqHeader Accept-Language: en-GB,en-US;q=0.9,en;q=0.8 - BereqHeader X-Forwarded-For: 106.213.193.241 - BereqHeader Accept-Encoding: gzip - BereqHeader X-Varnish: 6 - VCL_call BACKEND_FETCH - VCL_return fetch - BackendOpen 31 boot.default 127.0.0.1 8080 127.0.0.1 58860 - BackendStart 127.0.0.1 8080 - Timestamp Bereq: 1615604631.507458 0.000270 0.000270 - Timestamp Beresp: 1615604631.507844 0.000657 0.000386 - BerespProtocol HTTP/1.1 - BerespStatus 200 - BerespReason OK - BerespHeader Server: nginx/1.14.1 - BerespHeader Date: Sat, 13 Mar 2021 03:03:51 GMT - BerespHeader Content-Type: text/html - BerespHeader Content-Length: 4057 - BerespHeader Last-Modified: Mon, 07 Oct 2019 21:16:24 GMT
status pernis
Perintah varnishstat memberi Anda informasi tentang statistik dalam memori, penyimpanan, thread yang dibuat, dan objek yang dihapus.
varnishstat
Anda akan melihat layar berikut:
pernis
Perintah varnishtop membaca log memori bersama varnishd dan menyajikan daftar entri log yang paling sering muncul secara terus-menerus diperbarui.
varnishadm
Anda akan melihat layar berikut:
pernis
Varnishhist mem-parsing log pernis dan mencetak n permintaan terakhir dengan pemrosesannya.
varnishadm
Anda akan melihat layar berikut:
Kesimpulan
Dalam panduan di atas, Anda telah mempelajari cara menginstal dan mengonfigurasi cache Varnish dengan server web Apache dan Nginx. Anda sekarang dapat menerapkan cache Varnish di lingkungan produksi dan mempercepat kinerja situs web Anda. Jangan ragu untuk bertanya kepada saya jika Anda memiliki pertanyaan.