מטמון Varnish (ידוע גם כ-Varnish), הוא כלי קידום מהירות HTTP reverse-proxy מקור פתוח המיועד להאצת שרתי אינטרנט. הוא מיועד לנקודות קצה של API בשימוש רב וגם לאתרים דינמיים שמספקים תוכן עשיר וחוויית גלישה גבוהה.
בגדול, הוא עוזר להפחתת עומס ה-CPU; תומך באיזון עומס בשרתי האינטרנט ומאפשר לדפדפן אינטרנט לטעון אתרים במהירות עקב האחסון של המטמון בזיכרון המהיר. מספר חברות גדולות משתמשות בו כולל פייסבוק, טוויטר, ו-ויקיפדיה רק כדי לציין כמה.
דרישות
במאמר זה, אסביר כיצד להתקין ולהשתמש ב-מטמון Varnish 6.5 כקדמי לשרת אינטרנט Apache ב-CentOS 7 (פועל גם ב-RHEL 7).
שלב 1: התקנת שרת אינטרנט Apache על CentOS 7
1. התקן תחילה את שרת ה-HTTP של Apache ממאגרי התוכנה המוגדרים כברירת מחדל של 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 configuration language (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 caching.
תוכל להשתמש בפקודת 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>
12. לאחר מכן, פתח את קובץ התצורה של varnish systemd ומצא את הפרמטר ExecStart שמציין את הפורט שבו Varnish מאזין, ושנה את הערך שלו מ־6081 ל־80 כפי שמוצג בתמונה.
# systemctl edit --full varnish
התצורה צריכה להיראות כך כאשר תסיים.
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

13. לאחר מכן, הגדר את Apache כשרת צד אחורי עבור שרת ה־Varnish proxy, בקובץ התצורה /etc/varnish/default.vcl.
# vi /etc/varnish/default.vcl
מצא את סעיף ה־backend, והגדר את כתובת ה־IP והפורט. להלן הגדרת ה־backend הברירת מחדל, הגדר את זה להפנות לשרת התוכן האמיתי שלך.
backend default { .host = "127.0.0.1"; .port = "8080"; }
אם השרת הצד אחורי שלך פועל על שרת שונה עם כתובת 10.42.1.10, אז הפרמטר המארח צריך להפנות לכתובת ה־IP הזו.
backend server1 { .host = "10.42.1.10"; .port = "8080"; }
14. לאחר ביצוע כל ההגדרות הנדרשות, הפעל מחדש את HTTPD ואת מטמון ה־Varnish כדי להשפיע על השינויים הנ"ל.
# systemctl daemon-reload # systemctl restart httpd # systemctl restart varnish
שלב 4: בדיקת מטמון Varnish על Apache
15. לבסוף, בדוק אם 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/