كيفية تثبيت تخزين Varnish لـ Apache على CentOS/RHEL 8

كاش Varnish هو مسرّع تطبيق ويب حديث وعالي الأداء ومفتوح المصدر مجاني. إنه بروكسي HTTP عكسي سريع يخزّن المحتوى لتسريع أداء خادم الويب الخاص بك، عن طريق تخزين محتوى الويب في ذاكرة الخادم – في ذاكرة التخزين المؤقت. يتم تكوينه للتشغيل أمام خادم أصلي مثل Apache (HTTPD) ويب سيرفر.

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

Varnish يعمل أيضًا كموجّه لطلبات HTTP، جدار حماية لتطبيقات الويب، موازن حمولة، والمزيد. يتم تكوينه باستخدام لغة تكوين Varnish المرنة (VCL) والتي يمكن توسيعها باستخدام وحدات Varnish (المعروفة أيضًا باسم VMODs)، وتدعم تضمينات الجوانب الخارجية (ESI)، ضغط وفك ضغط Gzip، والمزيد.

في هذه المقالة، ستتعلم كيفية تثبيت خادم ويب Apache HTTPD و كاش Varnish 6 على خادم CentOS/RHEL 8 جديد، بما في ذلك تكوين Varnish للتشغيل أمام خادم HTTPD.

المتطلبات الأولية:

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

١. ابدأ بتحديث جميع حزم البرمجيات المثبتة على النظام كما يلي باستخدام أمر DNF.

# dnf update

٢. بعد ذلك، قم بتشغيل الأمر التالي لتثبيت خادم الويب أباتشي HTTP من مستودع AppStream.

# dnf install httpd

٣. بمجرد اكتمال التثبيت، قم ببدء خدمة httpd، وتمكينها للبدء تلقائيًا أثناء تمهيد النظام، والتحقق من حالتها للتأكد من أنها تعمل، باستخدام الأمر systemctl.

# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd
Verify Apache Web Server Status

٤. بشكل افتراضي، يتضمن CentOS/RHEL 8 جدار نار مقفل تمامًا (قم بتشغيل firewall-cmd –state للتأكد). يجب عليك فتح الوصول إلى خدمة HTTP في الجدار الناري للسماح للمستخدمين بالوصول إلى المواقع الإلكترونية أو التطبيقات التي تعمل عبر HTTP، وأيضًا إعادة تحميل إعدادات firewalld لتطبيق التغييرات الجديدة.

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

الخطوة 2: تثبيت Varnish Cache 6.4 على CentOS/RHEL 8

٥. الآن بعد أن يعمل خادم الويب أباتشي، يمكنك المضي قدمًا لتثبيت Varnish Cache على النظام باستخدام الأمر التالي.

# dnf module install varnish
Install Varnish Cache on CentOS 8

٦. بعد التثبيت الناجح، يمكنك التحقق من إصدار Varnish المثبت على نظامك.

# varnishd -V
Check Varnish Version

٧. بعد ذلك، يتم تثبيت الملف التنفيذي الرئيسي كـ /usr/sbin/varnishd. أيضًا، يتم تخزين ملفات تكوين Varnish تحت الدليل /etc/varnish، حيث:

  • /etc/varnish/default.vcl – هو ملف تكوين varnish الرئيسي المكتوب باستخدام VCL.
  • /etc/varnish/secret – هو ملف سر varnish.

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

# systemctl start varnish
# systemctl enable varnish
# systemctl status varnish
Verify Varnish Cache Status

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

٩. الآن حان الوقت لتكوين Varnish Cache للعمل أمام خدمة Apache. افتراضيًا، يتم تكوين خادم Apache للاستماع على المنفذ ٨٠، وهذا محدد في الملف التكوين الرئيسي /etc/httpd/conf/httpd.conf.

افتحه للتحرير باستخدام محرر النص المفضل لديك.

# vi /etc/httpd/conf/httpd.conf

ابحث عن المعلمة Listen. لتشغيل Varnish أمام خادم Apache، يجب عليك تغيير المنفذ الافتراضي ٨٠ إلى ٨٠٨٠ (أو أي منفذ آخر تختاره) كما هو موضح في لقطة الشاشة التالية.

سيتم إضافة هذا المنفذ كمنفذ لخادم الخلفية في ملف تكوين Varnish في وقت لاحق.

Change Apache Default Port

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

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

مهم: لمنع استخدام صفحة اختبار خادم Apache HTTP الافتراضية، قم بتعليق جميع الأسطر في الملف /etc/httpd/conf.d/welcome.conf أو ببساطة حذف الملف.

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

10. بعد ذلك، قم بفحص صحة تهيئة httpd للتأكد من عدم وجود أخطاء. إذا كانت بخير، أعد تشغيل خدمة httpd لتطبيق التغييرات الجديدة.

# httpd -t
# systemctl restart httpd
Check Apache Configuration

تكوين Varnish لـ Systemd

11. لنشر Varnish أمام HTTPD، تحتاج ببساطة إلى تكوينه للاستماع إلى طلبات العميل في منفذ HTTP الافتراضي 80 كما هو موضح أدناه.

يرجى ملاحظة أنه في Varnish Cache 6.0 والإصدارات الأحدث، يتعين عليك تعيين المنفذ الذي يستمع عليه خادم varnish في ملف خدمة Varnish لـ systemd. أولاً، افتحه للتعديل.

# systemctl edit --full  varnish

ابحث عن السطر ExecStart، ثم قم بتغيير قيمة مفتاح الخيار -a (الذي يحدد استماع varnish إلى العنوان والمنفذ) من :6081 إلى :80 كما هو موضح في الشاشة التالية.

من الأهمية بشكل خاص، إذا لم تحدد عنوانًا، ستستمع varnishd إلى جميع واجهات IPv4 و IPv6 المتاحة على الخادم.

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

احفظ التغييرات في الملف واخرج.

تكوين خوادم الأصل في فارنيش باستخدام VCL

12. الآن، تحتاج إلى تكوين خادم الأصل، المعروف في مصطلح فارنيش بأنه خلفية. إنه الخادم الذي يفهم HTTP، وفارنيش يتحدث معه لاسترجاع المحتوى – httpd في هذه الحالة. يتم تكوينه في ملف التكوين الرئيسي /etc/varnish/default.vcl.

# vi /etc/varnish/default.vcl 

هناك قسم تكوين خلفية افتراضي يسمى افتراضي. يمكنك تغيير “افتراضي” إلى خادم1 (أو أي اسم تختاره لمطابقة معايير بيئتك). بشكل افتراضي، يشير معلمة المضيف إلى localhost، بناءً على افتراض أن خادم الأصل يعمل على المضيف المحلي.

ثم ضع المنفذ على 8080 (المنفذ الذي قمت بتعريفه في ملف تكوين الاستضافة الظاهري لأباتشي) كما هو موضح في اللقطة.

backend server1 {
    .host = "127.0.0.1";
    .port = "8080";
}
Configure Varnish Backend Servers

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

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

احفظ الملف وأغلقه.

13. بعد إجراء جميع التغييرات اللازمة المتعلقة بـ فارنيش، أعد تحميل تكوين مدير systemd ليعكس التغييرات الجديدة في ملف خدمة فارنيش وأيضًا أعد تشغيل خدمة فارنيش لتطبيق التغييرات الشاملة.

# systemctl daemon-reload
# systemctl restart varnish

١٤. في هذه النقطة، يجب أن يكون Varnish و Apache الآن يستمعان على المنفذ ٨٠ و ٨٠٨٠ على التوالي. يمكنك تأكيد ذلك باستخدام أمر إحصاءات المقبس.

# ss -tpln
Check Varnish and Apache Listening Sockets

الخطوة ٤: اختبار تكوين Varnish Cache و Apache

١٤. لاختبار تكوين Varnish Cache-HTTPD، افتح متصفح الويب، وانتقل باستخدام عنوان IP الخادم أو FQDN كما هو موضح في لقطة الشاشة التالية.

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

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

Check Web Page is Served via Varnish Cache

بدلاً من ذلك، يمكنك تشغيل الأمر curl التالي للتحقق من ذلك.

# curl -I http:///10.42.0.144
OR
#curl -I http:///www.tecmint.lan
Check Varnish and Apache Setup

برامج فائدة لـ Varnish Cache Utility

١٥. دعنا ننهي هذا الدليل بالنظر في بعض البرامج المفيدة التي يأتي بها توزيع Varnish Cache. تشمل هذه البرامج أدوات لإدارة ذاكرة التخزين المؤقت varnish، وعرض سجلات التفاصيل بشكل مفصل، وعرض إحصاءات أداء varnish كما هو موضح أدناه.

varnishadm

الأول هو varnishadm الذي يُستخدم لإدارة نسخة تعمل من Varnish. يُنشئ اتصالًا واجهة سطر الأوامر مع varnishd. يمكنه التأثير على نسخة تعمل من Varnish عن طريق بدء وإيقاف varnishd، تغيير معلمات التكوين، إعادة تحميل VCL، قائمة الخوادم الخلفية، والمزيد.

# varnishadm
> backend.list
Administer Varnish Using Varnishadm Tool

لمزيد من المعلومات، اقرأ man varnishadm.

varnishlog

البرنامج التالي هو varnishlog الذي يُستخدم للوصول إلى بيانات محددة للطلبات (أي معلومات حول العملاء والطلبات المحددة). يوفر كميات كبيرة من المعلومات، لذلك غالبًا ما يكون من الضروري تصفيتها.

# varnishlog
Varnishlog – Check Varnish Cache Performance

لمزيد من المعلومات، اقرأ man varnishlog.

varnishstat

لدينا أيضًا varnishstat (إحصائيات varnish) التي تُستخدم للوصول إلى الإحصائيات العامة مثل عدد الطلبات الإجمالي، عدد الكائنات، والمزيد.

# varnishstat
varnishstat – Show Varnish Statistics

لمزيد من المعلومات، اقرأ man varnishstat.

varnishtop

ثم لدينا varnishtop وهو أداة تقرأ سجل Varnish وتقدم قائمة محدثة باستمرار لأكثر الإدخالات في السجل حدوثًا.

# varnishtop 
varnishtop – Reads Varnish Logs

لمزيد من المعلومات، اقرأ man varnishtop.

varnishhist

آخر أداة مفيدة هي varnishhist (تاريخ Varnish) تقوم بقراءة سجلات Varnish وتقدم هيستوغرام محدّث بشكل مستمر يظهر توزيع آخر N طلبات حسب معالجتها.

# varnishhist
varnishstat – Show Varnish Log History

لمزيد من المعلومات، اطّلع على دليل varnishhist.

إليك! لقد قمتَ بنجاح بنشر Varnish Cache لتسريع محتوى تطبيق الويب الخاص بك الذي يتم تقديمه باستخدام خادم Apache HTTP على CentOS/RHEL 8.

إذا كان لديك أي استفسار حول هذا الموضوع أو أفكار للمشاركة، استخدم نموذج التعليق أدناه. تحقق من توثيق Varnish Cache 6.0 لمزيد من المعلومات.

إذا كنت ترغب في تمكين HTTPS على موقعك، تحقق من مقالتنا التالية، التي ستوضح كيفية تمكين SSL/TLS لـ Varnish Cache باستخدام Hitch على CentOS/RHEL 8.

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