איך להאיץ את Nginx עם מטמון Varnish ב־CentOS 7

מטמון Varnish (נקרא גם Varnish) הוא מאיץ HTTP פתוח מקור וביצועים גבוהים המיועד להאצת שרתי אינטרנט. במאמרים האחרונים שלנו, סברנו כיצד להגדיר מטמון Varnish עבור Apache ב־CentOS 7 ו־CentOS 8.

במאמר זה, נראה לך כיצד להתקין ולהשתמש ב־מטמון Varnish כקדמי לשרת ה־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. התחל בהתקנת שרת ה־HTTP של Nginx ממאגרי התוכנה המובנים של 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: התקן את מטמון Varnish על 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_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

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: הגדר את Nginx כך שיעבוד עם המטמון של Varnish

11. בשלב זה, עליך להגדיר את Nginx כך שיעבוד עם המטמון של Varnish. כברירת מחדל, Nginx מאזין בפורט 80, עליך לשנות את הפורט המוגדר כברירת מחדל של Nginx ל-8080 כך שירוץ מאחורי המטמון של Varnish.

פתח את קובץ התצורה של Nginx /etc/nginx/nginx.conf ומצא את השורה listen 80 ושנה אותה ל- listen 8080 כמו בבלוק השרת המוצג בתמונת מסך למטה.

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

הערה: על זה על התבצע בכל קובץ התצורה של בלוקי השרת (בדרך כלל נוצרים בתחתית /etc/nginx/conf.d/) עבור אתרים שברצונך לשרת דרך Varnish.

12. לאחר מכן, פתח את קובץ התצורה של שירות ה-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

13. לאחר מכן, הגדר את Nginx כשרת צד ל-varnish proxy, בקובץ התצורה /etc/varnish/default.vcl.

# vi /etc/varnish/default.vcl 

מצא את המקטע backend, והגדר את כתובת ה-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

ניתן למצוא מידע נוסף במאגר ה-Github של Varnish Cache: https://github.com/varnishcache/varnish-cache

במדריך זה, הסברנו כיצד להגדיר את מטמון Varnish עבור שרת ה-HTTP של Nginx על CentOS 7. השתמש בטופס ההערות למטה כדי לשלוח לנו שאלות או רעיונות נוספים.

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