كيفية تسريع Nginx مع Varnish Cache على CentOS 7

تخزين التخزين المؤقت للفارنيش (المعروف أيضًا بـ فارنيش) هو مسرع HTTP مفتوح المصدر ، مصمم لتسريع خوادم الويب. في مقالاتنا الأخيرة ، شرحنا كيفية إعداد تخزين التخزين المؤقت للفارنيش لأباتشي على CentOS 7 و CentOS 8.

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

المتطلبات

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

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

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

# yum install nginx
Install Nginx on CentOS 7

2. عند اكتمال التثبيت ، ابدأ خدمة Nginx مؤقتًا واجعلها تبدأ تلقائيًا عند تشغيل النظام.

# systemctl start nginx
# systemctl enable nginx
# systemctl status nginx
Start and Enable Nginx at Boot

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

# firewall-cmd --zone=public --permanent --add-port=80/tcp
# firewall-cmd --reload
# firewall-cmd --zone=public --permanent --add-port=8080/tcp
# firewall-cmd --reload
Open Nginx Port on Firewall

الخطوة 2: تثبيت تخزين التخزين المؤقت للفارنيش على CentOS 7

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

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

# yum install -y epel-release

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

# yum install pygpgme yum-utils

٦. الآن قم بإنشاء ملف يسمى /etc/yum.repos.d/varnishcache_varnish5.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

٧. الآن قم بتشغيل الأمر أدناه لتحديث ذاكرة التخزين المؤقت المحلية yum وتثبيت حزمة تخزين varnish (لا تنسَ قبول مفتاح GPG عن طريق كتابة y أو yes أثناء تثبيت الحزمة):

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

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

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

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

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

10.يمكنك تأكيد نجاح تثبيت فيرنيش عن طريق رؤية موقع البرنامج القابل للتشغيل والإصدار المثبت على نظامك.

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

الخطوة 3: تهيئة إنجنكس للعمل مع ذاكرة التخزين المؤقت فيرنيش

11.في هذه الخطوة، تحتاج إلى تهيئة إنجنكس للعمل مع ذاكرة التخزين المؤقت فيرنيش. بشكل افتراضي، يستمع إنجنكس على المنفذ 80، يجب عليك تغيير منفذ إنجنكس الافتراضي إلى 8080 ليعمل وراء التخزين المؤقت لفيرنيش.

افتح ملف تكوين إنجنكس /etc/nginx/nginx.conf وابحث عن السطر الذي يستمع 80 وقم بتغييره إلى الاستماع 8080 كما هو موضح في كتلة الخادم الموضحة في لقطة الشاشة أدناه.

# vi /etc/nginx/nginx.conf
Configure Nginx Listening Port

ملاحظة: يجب أن يتم ذلك في جميع ملفات تكوين كتلة الخادم (التي عادة ما يتم إنشاؤها تحت /etc/nginx/conf.d/) لمواقع الويب التي ترغب في تقديمها عبر فيرنيش.

12.بعد ذلك، افتح ملف تكوين خدمة فيرنيش وابحث عن المعلمة ExecStart التي تحدد المنفذ الذي يستمع فيرنيش عليه، وقم بتغيير قيمتها من 6081 إلى 80.

# systemctl edit --full  varnish

يجب أن يكون السطر كما يلي.

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

13.بعد ذلك، قم بإعداد إنجنكس كخادم خلفي لبروكسي فيرنيش، في ملف التكوين /etc/varnish/default.vcl.

# vi /etc/varnish/default.vcl 

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

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

14. بعد أداء جميع التكوينات اللازمة، أعد تشغيل Nginx HTTPD وذاكرة التخزين المؤقت Varnish لتأثير التغييرات أعلاه.

# systemctl daemon-reload
# systemctl restart nginx
# systemctl restart varnish

الخطوة 4: اختبار ذاكرة التخزين المؤقت Varnish على Nginx

15. أخيرًا، قم بفحص ما إذا كانت ذاكرة التخزين المؤقت Varnish ممكّنة وتعمل مع خدمة Nginx باستخدام أمر cURL أدناه لعرض رأس HTTP.

# curl -I http://localhost
المخرجات العينة
HTTP/1.1 200 OK
Server: nginx/1.16.1
Date: Wed, 06 Jan 2021 09:24:18 GMT
Content-Type: text/html
Content-Length: 4833
Last-Modified: Fri, 16 May 2014 15:12:48 GMT
ETag: "53762af0-12e1"
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.5)
Accept-Ranges: bytes
Connection: keep-alive

يمكنك العثور على معلومات إضافية من مستودع Varnish Cache Github: https://github.com/varnishcache/varnish-cache

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

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