تخزين Varnish (المعروف بشكل شائع باسم Varnish)، هو برنامج مفتوح المصدر وشهير لـ تسريع الخوادم عبر بروكسي عكسي HTTP مصمم لتسريع خوادم الويب. تم تصميمه لنقاط نهاية واجهات برمجة التطبيقات المستخدمة بشكل مكثف وأيضًا للمواقع الديناميكية التي تقدم محتوى ضخم وتواجه حركة مرور عالية.
يساعد في الأساس على تقليل حمل وحدة المعالجة المركزية؛ يدعم توازن الحمل على خوادم الويب ويمكن متصفح الويب من تحميل المواقع بسرعة نتيجة لتخزين الذاكرة المؤقتة في الذاكرة العشوائية. تستخدم العديد من الشركات الكبيرة ذلك بما في ذلك فيسبوك، تويتر، و ويكيبيديا لنذكر بعضها فقط.
المتطلبات
في هذه المقالة، سأشرح كيفية تثبيت واستخدام تخزين Varnish 6.5 كواجهة أمامية لخادم ويب أباتشي في CentOS 7 (يعمل أيضًا على RHEL 7).
الخطوة 1: تثبيت خادم ويب أباتشي على CentOS 7
1. قم أولاً بتثبيت خادم Apache HTTP من مستودعات البرامج الافتراضية لـ CentOS باستخدام مدير الحزم YUM كما يلي.
# yum install httpd

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

3. قم بتحديث قواعد جدار الحماية النظامية التالية للسماح بحزم الواردة على المنفذ 80 باستخدام الأوامر التالية.
# firewall-cmd --zone=public --permanent --add-service=http # firewall-cmd --reload

الخطوة 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

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

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

١٣. بعد ذلك، قم بإعداد 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/