كيفية تسريع Apache باستخدام ذاكرة التخزين المؤقت Varnish على CentOS 7

تخزين Varnish (المعروف بشكل شائع باسم Varnish)، هو برنامج مفتوح المصدر وشهير لـ تسريع الخوادم عبر بروكسي عكسي HTTP مصمم لتسريع خوادم الويب. تم تصميمه لنقاط نهاية واجهات برمجة التطبيقات المستخدمة بشكل مكثف وأيضًا للمواقع الديناميكية التي تقدم محتوى ضخم وتواجه حركة مرور عالية.

يساعد في الأساس على تقليل حمل وحدة المعالجة المركزية؛ يدعم توازن الحمل على خوادم الويب ويمكن متصفح الويب من تحميل المواقع بسرعة نتيجة لتخزين الذاكرة المؤقتة في الذاكرة العشوائية. تستخدم العديد من الشركات الكبيرة ذلك بما في ذلك فيسبوك، تويتر، و ويكيبيديا لنذكر بعضها فقط.

المتطلبات

  1. A CentOS 7 with Apache installed
  2. A CentOS 7 with a static IP address

في هذه المقالة، سأشرح كيفية تثبيت واستخدام تخزين Varnish 6.5 كواجهة أمامية لخادم ويب أباتشي في CentOS 7 (يعمل أيضًا على RHEL 7).

الخطوة 1: تثبيت خادم ويب أباتشي على CentOS 7

1. قم أولاً بتثبيت خادم Apache HTTP من مستودعات البرامج الافتراضية لـ CentOS باستخدام مدير الحزم YUM كما يلي.

# yum install httpd
Install Apache on CentOS 7

2. بمجرد تثبيت Apache، قم بتشغيله مؤقتًا وتمكينه للبدء تلقائيًا عند تشغيل النظام.

# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd
Start and Enable Apache

3. قم بتحديث قواعد جدار الحماية النظامية التالية للسماح بحزم الواردة على المنفذ 80 باستخدام الأوامر التالية.

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --reload
Open Apache Port on Firewall

الخطوة 2: قم بتثبيت Varnish Cache على CentOS 7

4. الآن هناك حزم RPM مُعدة مُسبقًا لأحدث إصدار من Varnish Cache 6 (أي 6.5 في وقت الكتابة)، لذلك تحتاج إلى إضافة مستودع Varnish Cache الرسمي.

قبل ذلك، تحتاج إلى تمكين مستودع EPEL لتثبيت عدة حزم تبعية كما هو موضح.

# yum install -y epel-release

5. بعد ذلك، قم بتثبيت pygpgme، حزمة للتعامل مع توقيعات GPG و yum-utils، مجموعة من الأدوات المفيدة التي توسع ميزات yum الأصلية بطرق مختلفة.

# yum install pygpgme yum-utils

6. الآن قم بإنشاء ملف بالاسم /etc/yum.repos.d/varnishcache_varnish65.repo الذي يحتوي على تكوين المستودع أدناه.

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

مهم: تأكد من استبدال el و 7 في التكوين أدناه بتوزيعة Linux وإصدارك:

[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. الآن قم بتشغيل الأمر أدناه لتحديث ذاكرة التخزين المؤقت المحلية yum وتثبيت حزمة varnish cache (لا تنسى قبول مفتاح GPG عن طريق كتابة y أو yes أثناء تثبيت الحزمة):

# yum -q makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish65'
# yum install varnish 
Install Varnish Cache in CentOS 7

8. بعد تثبيت Varnish Cache، سيتم تثبيت البرنامج التنفيذي الرئيسي كـ /usr/sbin/varnishd وتقع ملفات تكوين varnish في /etc/varnish/:

  • /etc/varnish/default.vcl – هذا هو ملف تكوين varnish الرئيسي، وهو مكتوب باستخدام لغة تكوين vanish (VCL).

9. الآن قم بتشغيل خدمة varnish، وتمكينها للبدء تلقائيًا أثناء تمهيد النظام، والتحقق من حالتها للتأكد من أنها تعمل كما يلي.

# systemctl start varnish
# systemctl enable varnish
# systemctl status varnish
Start Varnish Cache

10. يمكنك التحقق من نجاح تثبيت Varnish من خلال رؤية موقع البرنامج التنفيذي Varnish والإصدار المثبت على نظامك.

$ which varnishd
$ varnishd -V
الناتج عينة
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2020 Varnish Software

الخطوة 3: تكوين Apache للعمل مع Varnish Cache

11. الآن قم بتكوين Apache للعمل بالتزامن مع Varnish Cache. بشكل افتراضي، يستمع Apache على المنفذ 80، تحتاج إلى تغيير منفذ HTTPD الافتراضي إلى 8080 – وهذا سيضمن أن يعمل HTTPD خلف التخزين المؤقت لـ Varnish.

يمكنك استخدام الأمر sed لتغيير المنفذ 80 إلى 8080 كما هو موضح.

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

ملاحظة: أيضًا، تحتاج إلى تغيير المنفذ في تكوين الاستضافة الافتراضية الخاصة بك لكل موقع ويب ترغب في خدمته عبر Varnish. هنا تكوين موقع الاختبار الخاص بنا (/etc/httpd/conf.d/tecmint.lan.conf).

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

١٢. بعد ذلك، افتح ملف تكوين systemd لـ varnish وابحث عن المعلمة ExecStart التي تحدد المنفذ الذي يستمع إليه Varnish، وقم بتغيير قيمته من 6081 إلى 80 كما هو موضح في اللقطة.

# systemctl edit --full  varnish

يجب أن يبدو التكوين بهذا الشكل عند الانتهاء.

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

١٣. بعد ذلك، قم بإعداد Apache كخادم خلفي لخادم Varnish proxy، في ملف التكوين /etc/varnish/default.vcl.

# vi /etc/varnish/default.vcl 

ابحث عن القسم backend، وحدد عنوان IP والمنفذ. فيما يلي تكوين الخادم الخلفي الافتراضي، قم بتعيين هذا ليشير إلى خادم المحتوى الفعلي الخاص بك.

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

إذا كان خادم الخلفية الخاص بك يعمل على خادم مختلف بعنوان 10.42.1.10، فيجب أن يشير المعلمة المضيفة إلى هذا العنوان IP.

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

١٤. بعد إجراء جميع التكوينات اللازمة، أعد تشغيل HTTPD و Varnish cache لتطبيق التغييرات أعلاه.

# systemctl daemon-reload
# systemctl restart httpd
# systemctl restart varnish

الخطوة ٤: اختبار Varnish Cache على Apache

١٥. أخيرًا، قم بالاختبار، إذا كان Varnish ممكّنًا ويعمل مع خدمة HTTPD باستخدام أمر cURL أدناه، الذي يمكن استخدامه لعرض رأس HTTP.

# curl -I http://localhost
ناتج عينة
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

لمزيد من المعلومات، تحقق من مستودع Varnish Cache على Github: https://github.com/varnishcache/varnish-cache

في هذا البرنامج التعليمي، شرحنا كيفية إعداد البروكسي Varnish Cache 6.5 لخادم Apache HTTP على CentOS 7. في حال كان لديك أي استفسارات أو أفكار إضافية للمشاركة، استخدم النموذج أدناه لتزويدنا بتعليقاتك.

Source:
https://www.tecmint.com/install-varnish-cache-on-centos-7-for-apache/