Instal Varnish Cache 5.2 untuk Meningkatkan Kinerja Apache di CentOS 7


Varnish Cache (umumnya dikenal sebagai Varnish), adalah akselerator HTTP proxy terbalik sumber terbuka yang populer yang ditujukan untuk mempercepat server web. Ini dirancang untuk titik akhir API yang digunakan secara berlebihan dan juga untuk situs dinamis yang menyajikan konten dalam jumlah besar dan mengalami lalu lintas tinggi.

Ini pada dasarnya membantu mengurangi beban CPU; mendukung penyeimbangan beban di server web dan memungkinkan browser web memuat situs dengan cepat sebagai hasil penyimpanan cache di RAM. Sejumlah perusahaan besar menggunakannya termasuk Facebook, Twitter, dan Wikipedia hanyalah beberapa di antaranya.

Persyaratan

  1. CentOS 7 dengan Apache terinstal
  2. CentOS 7 dengan alamat IP statis

Pada artikel ini, saya akan menjelaskan cara menginstal dan menggunakan Varnish Cache 6.5 sebagai front-end ke server web Apache di CentOS 7 ( juga berfungsi di RHEL 7).

Langkah 1: Instal Server Web Apache di CentOS 7

1. Pertama-tama instal server HTTP Apache dari repositori perangkat lunak CentOS default menggunakan manajer paket YUM sebagai berikut.

yum install httpd

2. Setelah Apache diinstal, jalankan untuk sementara waktu dan aktifkan untuk memulai secara otomatis saat boot sistem.

systemctl start httpd
systemctl enable httpd
systemctl status httpd

3. Selanjutnya perbarui aturan firewall sistem untuk mengizinkan paket masuk pada port 80 menggunakan perintah di bawah ini.

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

Langkah 2: Instal Varnish Cache di CentOS 7

4. Sekarang ada paket RPM yang telah dikompilasi untuk versi terbaru Varnish Cache 6 (yaitu 6.5 pada saat penulisan), oleh karena itu Anda perlu menambahkan repositori resmi Varnish Cache.

Sebelumnya, Anda perlu mengaktifkan repositori EPEL untuk menginstal beberapa paket ketergantungan seperti yang ditunjukkan.

yum install -y epel-release

5. Selanjutnya, instal pygpgme, sebuah paket untuk menangani tanda tangan GPG dan yum-utils, kumpulan utilitas berguna yang memperluas fitur asli yum dalam berbagai cara.

yum install pygpgme yum-utils

6. Sekarang buat file bernama /etc/yum.repos.d/varnishcache_varnish65.repo yang berisi konfigurasi repositori di bawah ini.

vi /etc/yum.repos.d/varnishcache_varnish65.repo

Penting: Pastikan untuk mengganti el dan 7 pada konfigurasi di bawah ini dengan distribusi dan versi Linux Anda:

[varnishcache_varnish65]
name=varnishcache_varnish65
baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[varnishcache_varnish65-source]
name=varnishcache_varnish65-source
baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

7. Sekarang jalankan perintah di bawah ini untuk memperbarui yum cache lokal Anda dan menginstal paket cache pernis (jangan lupa untuk menerima kunci GPG dengan mengetik y atau yes saat menginstal paket):

yum -q makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish65'
yum install varnish 

8. Setelah menginstal Varnish Cache, executable utama akan diinstal sebagai /usr/sbin/varnishd dan file konfigurasi pernis berlokasi di /etc/pernis/:

  • /etc/varnish/default.vcl – ini adalah file konfigurasi pernis utama, ditulis menggunakan bahasa konfigurasi vanish (VCL).

9. Sekarang mulai layanan pernis, aktifkan layanan tersebut untuk memulai secara otomatis saat boot sistem, dan verifikasi statusnya untuk memastikan bahwa layanan tersebut aktif dan berjalan seperti berikut.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

10. Anda dapat mengonfirmasi bahwa instalasi Varnish berhasil dengan melihat lokasi Varnish yang dapat dieksekusi dan versi yang diinstal pada sistem Anda.

which varnishd
varnishd -V
Contoh Keluaran
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2020 Varnish Software

Langkah 3: Konfigurasikan Apache agar Bekerja dengan Varnish Cache

11. Sekarang konfigurasikan Apache agar berfungsi bersama dengan Varnish Cache. Secara default, Apache mendengarkan pada port 80, Anda perlu mengubah port HTTPD default menjadi 8080 – ini akan memastikan bahwa HTTPD berjalan di belakang cache Varnish.

Anda dapat menggunakan perintah sed untuk mengubah port 80 menjadi 8080 seperti yang ditunjukkan.

sed -i "s/Listen 80/Listen 8080/" /etc/httpd/conf/httpd.conf

Catatan: Selain itu, Anda perlu mengubah port pada konfigurasi host virtual Anda untuk setiap situs web yang ingin Anda layani melalui Varnish. 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>

12. Selanjutnya, buka file konfigurasi sistem pernis dan temukan parameter ExecStart yang menentukan port yang didengarkan Varnish, dan ubah nilainya dari 6081 hingga 80 seperti yang ditunjukkan pada tangkapan layar.

systemctl edit --full  varnish

Konfigurasinya akan terlihat seperti ini setelah selesai.

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

13. Selanjutnya, siapkan Apache sebagai server backend untuk proksi Varnish, di file konfigurasi /etc/varnish/default.vcl.

vi /etc/varnish/default.vcl 

Temukan bagian backend, dan tentukan IP host dan port. Di bawah ini adalah konfigurasi backend default, atur agar mengarah ke server konten Anda yang sebenarnya.

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

Jika server backend Anda berjalan di server berbeda dengan alamat 10.42.1.10, maka parameter host harus mengarah ke alamat IP ini.

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

14. Setelah melakukan semua konfigurasi yang diperlukan, mulai ulang HTTPD dan cache Varnish untuk melakukan perubahan di atas.

systemctl daemon-reload
systemctl restart httpd
systemctl restart varnish

Langkah 4: Uji Varnish Cache di Apache

15. Terakhir, uji apakah Varnish diaktifkan dan berfungsi dengan layanan HTTPD menggunakan perintah cURL di bawah, yang dapat digunakan untuk melihat header HTTP.

curl -I http://localhost
Contoh Keluaran
HTTP/1.1 200 OK
Date: Wed, 06 Jan 2021 08:36:07 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT
ETag: "1321-5058a1e728280"
Accept-Ranges: bytes
Content-Length: 4897
Content-Type: text/html; charset=UTF-8
X-Varnish: 131085
Age: 0
Via: 1.1 varnish (Varnish/6.5)
Connection: keep-alive

Untuk informasi lebih lanjut, lihat Repositori Github Varnish Cache: https://github.com/varnishcache/varnish-cache

Dalam tutorial ini, kami menjelaskan cara menyiapkan proxy Varnish Cache 6.5 untuk server HTTP Apache di CentOS 7. Jika Anda memiliki pertanyaan atau ide tambahan untuk dibagikan, gunakan formulir masukan di bawah untuk membalas email kami .