Varnish cache adalah akselerator cache sumber terbuka dan gratis yang digunakan untuk mempercepat situs web Anda dengan menyimpan konten di memori. Ini sangat cepat dan mengurangi waktu buka halaman, yang membantu dengan SERP Anda dan meningkatkan pengalaman pengguna. Ini digunakan oleh banyak organisasi termasuk Facebook, Twitter, dan Wikipedia. Varnish berada di antara Nginx dan klien yang menerima permintaan dari klien dan meneruskannya ke backend. Ini akan meningkatkan kinerja server web karena Varnish akan menyajikan konten dari memori.
Dalam tutorial ini, saya akan menunjukkan cara menginstal Varnish 7 di depan Nginx di Rocky Linux 8.
Prasyarat
- Server yang menjalankan Rocky Linux 8.
- Kata sandi root dikonfigurasi di server.
Instal Pernis 7
Sebelum memulai, Anda harus menonaktifkan modul pernis yang ada dari sistem Anda. Anda dapat menonaktifkannya dengan menjalankan perintah berikut:
dnf module disable varnish
Anda akan melihat output berikut:
============================================================================================================================================== Package Architecture Version Repository Size ============================================================================================================================================== Disabling modules: varnish Transaction Summary ============================================================================================================================================== Is this ok [y/N]: y Complete!
Selanjutnya, instal repositori EPEL menggunakan perintah berikut:
dnf install epel-release -y
Selanjutnya, tambahkan repositori Varnish Cache 7 ke sistem Anda menggunakan perintah berikut:
curl -s https://packagecloud.io/install/repositories/varnishcache/varnish70/script.rpm.sh | bash
Setelah repositori ditambahkan, instal Varnish 7 menggunakan perintah berikut:
dnf install varnish -y
Setelah instalasi berhasil, verifikasi informasi tentang Varnish dengan perintah berikut:
rpm -qi varnish
Anda akan melihat output berikut:
Name : varnish Version : 7.0.2 Release : 1.el8 Architecture: x86_64 Install Date: Sunday 13 February 2022 06:24:35 AM UTC Group : System Environment/Daemons Size : 8907085 License : BSD Signature : (none) Source RPM : varnish-7.0.2-1.el8.src.rpm Build Date : Wednesday 12 January 2022 02:25:34 PM UTC Build Host : 7fc509e75620 Relocations : (not relocatable) URL : https://www.varnish-cache.org/ Summary : High-performance HTTP accelerator Description : This is Varnish Cache, a high-performance HTTP accelerator.
Kelola Layanan Pernis
Setelah menginstal Varnish, mulai layanan Varnish dan aktifkan untuk memulai pada sistem reboot menggunakan perintah berikut:
systemctl start varnish
systemctl enable varnish
Anda 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 Sun 2022-02-13 06:24:56 UTC; 6s ago Process: 2555 ExecStart=/usr/sbin/varnishd -a :6081 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m (c> Main PID: 2556 (varnishd) Tasks: 217 Memory: 104.5M CGroup: /system.slice/varnish.service ??2556 /usr/sbin/varnishd -a :6081 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m ??2567 /usr/sbin/varnishd -a :6081 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m Feb 13 06:24:55 rockylinux systemd[1]: Starting Varnish Cache, a high-performance HTTP accelerator... Feb 13 06:24:55 rockylinux varnishd[2556]: Version: varnish-7.0.2 revision 9b5f68e19ca0ab60010641e305fd12822f18d42c Feb 13 06:24:55 rockylinux varnishd[2556]: Platform: Linux,4.18.0-348.12.2.el8_5.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit Feb 13 06:24:55 rockylinux varnishd[2556]: Child (2567) Started Feb 13 06:24:56 rockylinux varnishd[2556]: Child (2567) said Child starts Feb 13 06:24:56 rockylinux systemd[1]: Started Varnish Cache, a high-performance HTTP accelerator.
Konfigurasikan Pernis
Secara default, Varnish mendengarkan pada port 6081. Di sini, kita akan menggunakan Varnish untuk menerima koneksi HTTP yang masuk. Jadi, Anda perlu mengonfigurasi Varnish untuk mendengarkan pada port 80. Anda dapat melakukannya dengan mengedit /usr/lib/systemd/system/varnish.service berkas:
nano /usr/lib/systemd/system/varnish.service
Ubah port 6081 menjadi 80 seperti gambar di bawah ini:
ExecStart=/usr/sbin/varnishd -a :80 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,2g
Simpan dan tutup file, lalu muat ulang daemon systemd untuk menerapkan perubahan:
systemctl daemon-reload
Selanjutnya, restart layanan Varnish untuk menerapkan perubahan:
systemctl restart varnish
Selanjutnya, verifikasi port mendengarkan Varnish menggunakan perintah berikut:
ss -antpl | grep varnish
Anda akan melihat port mendengarkan Varnish di output berikut:
LISTEN 0 10 127.0.0.1:46093 0.0.0.0:* users:(("varnishd",pid=2819,fd=13)) LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("cache-main",pid=2830,fd=6),("varnishd",pid=2819,fd=6)) LISTEN 0 128 127.0.0.1:8443 0.0.0.0:* users:(("cache-main",pid=2830,fd=9),("varnishd",pid=2819,fd=9)) LISTEN 0 10 [::1]:33963 [::]:* users:(("varnishd",pid=2819,fd=12)) LISTEN 0 128 [::]:80 [::]:* users:(("cache-main",pid=2830,fd=7),("varnishd",pid=2819,fd=7)) LISTEN 0 128 [::1]:8443 [::]:* users:(("cache-main",pid=2830,fd=8),("varnishd",pid=2819,fd=8))
Konfigurasikan Nginx agar bekerja dengan Varnish
Di bagian ini, kita akan menginstal Nginx dan mengonfigurasinya agar berfungsi dengan Varnish. Pertama, instal paket Nginx dengan perintah berikut:
dnf install nginx -y
Setelah menginstal Nginx, Anda perlu mengedit file konfigurasi Nginx dan mengubah port mendengarkan default Nginx dari 80 ke 8080 .
Edit file konfigurasi utama Nginx menggunakan perintah berikut:
nano /etc/nginx/nginx.conf
Temukan baris berikut:
listen 80 default_server; listen [::]:80 default_server;
Dan, ganti dengan baris berikut:
listen 8080 default_server; listen [::]:8080 default_server;
Simpan dan tutup file setelah Anda selesai kemudian mulai layanan Nginx untuk menerapkan perubahan:
systemctl start nginx
Anda juga dapat memeriksa status Nginx menggunakan perintah berikut:
systemctl status nginx
Anda akan mendapatkan output berikut:
? nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Active: active (running) since Sun 2022-02-13 06:29:02 UTC; 8s ago Process: 5627 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 5626 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 5624 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 5629 (nginx) Tasks: 2 (limit: 11412) Memory: 6.7M CGroup: /system.slice/nginx.service ??5629 nginx: master process /usr/sbin/nginx ??5630 nginx: worker process Feb 13 06:29:02 rockylinux systemd[1]: Starting The nginx HTTP and reverse proxy server... Feb 13 06:29:02 rockylinux nginx[5626]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok Feb 13 06:29:02 rockylinux nginx[5626]: nginx: configuration file /etc/nginx/nginx.conf test is successful Feb 13 06:29:02 rockylinux systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument Feb 13 06:29:02 rockylinux systemd[1]: Started The nginx HTTP and reverse proxy server.
Verifikasi Cache Pernis
Pada titik ini, Varnish diinstal dan dikonfigurasi dengan server web Nginx. Sekarang, saatnya menguji cache Varnish.
Jalankan perintah berikut untuk memverifikasi cache Varnish:
curl -I http://your-server-ip
Jika semuanya baik-baik saja, Anda akan mendapatkan output berikut:
HTTP/1.1 200 OK Server: nginx/1.14.1 Date: Sun, 13 Feb 2022 06:30:06 GMT Content-Type: text/html Content-Length: 3429 Last-Modified: Thu, 10 Jun 2021 09:09:03 GMT ETag: "60c1d6af-d65" X-Varnish: 2 Age: 0 Via: 1.1 varnish (Varnish/7.0) Accept-Ranges: bytes Connection: keep-alive
Kesimpulan
Selamat! Anda telah berhasil menginstal Varnish dengan Nginx di Rocky Linux 8. Sekarang Anda dapat menerapkan Varnish di lingkungan produksi untuk mempercepat kinerja situs web Anda. Jangan ragu untuk bertanya kepada saya jika Anda memiliki pertanyaan.