Cara Install Varnish Cache untuk Apache di CentOS/RHEL 8


Varnish Cache adalah akselerator aplikasi web sumber terbuka gratis, modern, dan berkinerja tinggi. Ini adalah proksi HTTP terbalik cepat yang menyimpan konten dalam cache untuk mempercepat kinerja server web Anda, dengan menyimpan konten web di memori server – dalam cache. Ini dikonfigurasi untuk berjalan di depan server asal seperti server web Apache (HTTPD).

Saat klien meminta konten, Varnish menerima permintaan HTTP, mengirimkan permintaan ke server asal, menyimpan objek yang dikembalikan ke cache, dan membalas permintaan klien. Saat berikutnya klien meminta konten yang sama, Varnish akan menyajikannya dari cache. Dengan cara ini, ini mengurangi waktu respons dan konsumsi bandwidth jaringan pada permintaan serupa di masa mendatang.

Varnish juga berfungsi sebagai router permintaan HTTP, firewall aplikasi web, penyeimbang beban, dan banyak lagi. Ini dikonfigurasikan menggunakan Bahasa Konfigurasi Varnish (VCL) yang fleksibel dan dapat diperluas menggunakan Modul Varnish (juga dikenal sebagai VMODs ), dukungan untuk Edge Side Includes (ESL), kompresi dan dekompresi Gzip, dan banyak lagi.

Dalam artikel ini, Anda akan mempelajari cara menginstal server web Apache HTTPD dan Varnish Cache 6 pada server CentOS/RHEL 8 baru, termasuk mengonfigurasi Varnish untuk dijalankan di depan server HTTPD.

Prasyarat:

  • Server dengan Instalasi CentOS 8
  • Server dengan instalasi RHEL 8 dengan langganan Red Hat yang diaktifkan di sistem Anda.

Langkah 1: Menginstal Server Web Apache di CentOS/RHEL 8

1. Mulailah dengan memperbarui semua paket perangkat lunak yang diinstal pada sistem sebagai berikut menggunakan perintah DNF.

dnf update

2. Selanjutnya, jalankan perintah berikut untuk menginstal server web Apache HTTP dari repositori AppStream.

dnf install httpd

3. Segera setelah instalasi selesai, mulai layanan httpd, aktifkan layanan tersebut untuk memulai secara otomatis saat boot sistem, dan periksa statusnya untuk mengonfirmasi bahwa layanan sudah aktif dan berjalan, menggunakan perintah systemctl.

systemctl start httpd
systemctl enable httpd
systemctl status httpd

4. Secara default CentOS/RHEL 8 menyertakan firewall yang terkunci sepenuhnya (jalankan firewall-cmd –state untuk mengonfirmasi). Anda harus membuka akses ke layanan HTTP di firewall untuk mengizinkan pengguna mengakses situs web atau aplikasi yang berjalan melalui HTTP, dan juga memuat ulang setelan firewall untuk menerapkan perubahan baru.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload

Langkah 2: Menginstal Varnish Cache 6.4 di CentOS/RHEL 8

5. Sekarang setelah server web Apache berjalan, Anda dapat melanjutkan lebih jauh untuk menginstal Varnish Cache pada sistem menggunakan perintah berikut.

dnf module install varnish

6. Setelah instalasi berhasil, Anda dapat memverifikasi versi Varnish yang diinstal pada sistem Anda.

varnishd -V

7. Selanjutnya, executable utama diinstal sebagai /usr/sbin/varnishd. Selain itu, file konfigurasi Varnish disimpan di direktori /etc/varnish, di mana:

  • /etc/varnish/default.vcl – adalah file konfigurasi pernis utama yang ditulis menggunakan VCL.
  • /etc/varnish/secret – adalah file rahasia pernis.

8. Sekarang mulai layanan pernis, untuk saat ini, aktifkan layanan tersebut untuk memulai secara otomatis selama boot sistem jika server dimulai ulang dan periksa statusnya untuk memastikan bahwa layanan tersebut aktif dan berjalan sebagai berikut.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

Langkah 3: Mengonfigurasi Apache agar Bekerja dengan Varnish Cache

9. Sekarang saatnya mengonfigurasi Varnish Cache agar berjalan di depan layanan Apache. Secara default, server Apache dikonfigurasi untuk mendengarkan pada port 80, ini didefinisikan dalam file konfigurasi utama /etc/httpd/conf/httpd.conf.

Buka untuk diedit menggunakan editor teks favorit Anda.

vi /etc/httpd/conf/httpd.conf

Cari parameter Dengarkan. Untuk menjalankan Varnish di depan server Apache, Anda harus mengubah port default 80 menjadi 8080 (atau port lain pilihan Anda) sebagai ditunjukkan pada tangkapan layar berikut.

Port ini akan ditambahkan sebagai port server backend di file konfigurasi Varnish nanti.

Selain itu, konfigurasi host virtual untuk setiap situs web/aplikasi yang akan melayani melalui Varnish harus dikonfigurasi untuk mendengarkan port di atas. Berikut adalah konfigurasi untuk situs pengujian kami (/etc/httpd/conf.d/tecmint.lan.conf).

<VirtualHost *:8080>
    DocumentRoot "/var/www/html/tecmint.lan/"
    ServerName www.tecmint.lan
    # Other directives here
</VirtualHost>

Penting: Untuk mencegah halaman pengujian server HTTP Apache default digunakan, beri komentar pada semua baris dalam file /etc/httpd/conf.d /welcome.conf atau cukup hapus file tersebut.

rm /etc/httpd/conf.d/welcome.conf 

10. Selanjutnya, uji sintaks konfigurasi httpd untuk menemukan kesalahan apa pun. Jika sudah oke, restart layanan httpd untuk menerapkan perubahan baru.

httpd -t
systemctl restart httpd

Mengonfigurasi Varnish untuk Systemd

11. Untuk menerapkan Varnish di depan HTTPD, Anda hanya perlu mengonfigurasinya untuk mendengarkan permintaan klien di port HTTP default 80 seperti yang dijelaskan di bawah.

Perhatikan bahwa di Varnish Cache 6.0 dan lebih tinggi, Anda harus menyetel port server pernis yang mendengarkan di file layanan Varnish untuk systemd. Pertama, buka untuk diedit.

systemctl edit --full  varnish

Cari baris ExecStart, lalu ubah nilai sakelar -a (yang menentukan pernis mendengarkan alamat dan port) dari :6081 ke :80 seperti yang ditunjukkan pada tangkapan layar berikut.

Yang penting, jika Anda tidak menentukan alamat, varnishd akan mendengarkan semua antarmuka IPv4 dan IPv6 yang tersedia dan aktif di server.

ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

Simpan perubahan dalam file dan keluar.

Konfigurasi Varnish Backend Server menggunakan VCL

12. Sekarang, Anda perlu mengonfigurasi server asal, yang dalam terminologi Varnish dikenal sebagai backend. Serverlah yang memahami HTTP, Varnish berbicara dengannya, untuk mengambil konten – dalam hal ini httpd. Ini dikonfigurasikan dalam file konfigurasi utama /etc/varnish/default.vcl.

vi /etc/varnish/default.vcl 

Ada bagian konfigurasi backend default yang disebut default. Anda dapat mengubah “default ” menjadi server1 (atau nama apa pun pilihan Anda untuk memenuhi standar lingkungan Anda). Secara default, parameter host menunjuk ke localhost, dengan asumsi bahwa server backend berjalan di localhost.

Kemudian atur portnya ke 8080 (port yang Anda tentukan di file konfigurasi virtual host Apache) seperti yang ditunjukkan pada tangkapan layar.

backend server1 {
    .host = "127.0.0.1";
    .port = "8080";
}

Jika server backend Anda berjalan pada host yang berbeda, misalnya server lain dengan alamat 10.42.1.10, maka parameter host harus mengarah ke alamat IP ini.

backend server1 {
    .host = "10.42.1.10";
    .port = "8080";
}

Simpan file dan tutup.

13. Setelah melakukan semua perubahan yang diperlukan mengenai Varnish, muat ulang konfigurasi manajer systemd untuk mencerminkan perubahan baru dalam file layanan Varnish dan juga memulai ulang layanan Varnish untuk menerapkan perubahan keseluruhan.

systemctl daemon-reload
systemctl restart varnish

14. Pada titik ini, Varnish dan Apache seharusnya sudah mendengarkan masing-masing pada port 80 dan 8080. Anda dapat mengonfirmasinya menggunakan perintah statistik soket.

ss -tpln

Langkah 4: Menguji Varnish Cache dan Pengaturan Apache

14. Untuk menguji penyiapan Varnish Cache-HTTPD, buka browser web, dan navigasikan menggunakan server IP atau FQDN seperti yang ditunjukkan pada tangkapan layar berikut.

http://10.42.0.144
OR
http://www.tecmin.lan

Kemudian periksa apakah halaman web disajikan melalui Varnish Cache sebagai berikut. Periksa header HTTP dengan mengklik kanan halaman web yang ditampilkan, pilih Periksa untuk membuka alat pengembang, lalu klik tab Jaringan, dan muat ulang laman. Kemudian pilih permintaan untuk melihat header HTTP untuk mengonfirmasi hal ini seperti yang ditunjukkan pada tangkapan layar berikut.

Alternatifnya, Anda dapat menjalankan perintah curl berikut untuk memverifikasinya.

curl -I http:///10.42.0.144
OR
#curl -I http:///www.tecmint.lan

Program Utilitas Cache Varnish yang Berguna

15. Mari kita akhiri panduan ini dengan melihat beberapa program berguna yang disertakan dalam distribusi Varnish Cache. Mereka mencakup utilitas untuk administrasi cache pernis, menampilkan catatan log terperinci, dan melihat statistik kinerja pernis seperti dijelaskan di bawah.

pernisadm

Yang pertama adalah varnishadm yang digunakan untuk mengelola instance Varnish yang sedang berjalan. Ini membuat koneksi antarmuka baris perintah ke varnishd. Hal ini dapat memengaruhi instance Varnish yang sedang berjalan dengan memulai dan menghentikan varnishd, mengubah parameter konfigurasi, memuat ulang VCL, membuat daftar backend, dan banyak lagi.

varnishadm
> backend.list

Untuk informasi lebih lanjut, baca man vernisadm.

pernislog

Program berikutnya adalah varnishlog yang digunakan untuk mengakses data khusus permintaan (yaitu informasi tentang klien dan permintaan tertentu). Ini memberikan informasi dalam jumlah besar, oleh karena itu biasanya perlu untuk menyaringnya.

varnishlog

Untuk informasi lebih lanjut, baca man vernislog.

pernisstat

Kami juga memiliki varnishstat (statistik pernis) yang digunakan untuk mengakses statistik keseluruhan seperti jumlah total permintaan, jumlah objek, dan banyak lagi.

varnishstat

Untuk informasi lebih lanjut, baca man vernisstat.

pernistop

Kemudian kita memiliki varnishtop yang merupakan utilitas yang membaca log Varnish dan menampilkan daftar entri log yang paling sering muncul dan terus diperbarui.

varnishtop 

Untuk informasi lebih lanjut, baca man vernistop.

ahli pernis

Utilitas lain yang bermanfaat adalah utilitas varnishhist (varnish history) yang membaca log Varnish dan menyajikan histogram yang terus diperbarui yang menunjukkan distribusi N permintaan terakhir berdasarkan permintaannya pengolahan.

varnishhist

Untuk informasi lebih lanjut, baca man vernishhist.

Itu dia! Anda telah berhasil menerapkan Varnish Cache untuk mempercepat konten aplikasi web Anda yang disajikan menggunakan Server Apache HTTP di CentOS/RHEL 8.

Jika Anda memiliki pertanyaan tentang topik ini atau pemikiran untuk dibagikan, gunakan formulir umpan balik di bawah. Lihat dokumentasi Varnish Cache 6.0 untuk informasi lebih lanjut.

Jika Anda ingin mengaktifkan HTTPS di situs Anda, lihat artikel kami berikutnya, yang akan menunjukkan cara mengaktifkan SSL/TLS untuk Varnish Cache menggunakan Hitch di CentOS/RHEL 8.