זיכרון מטמון Varnish הוא מאיץ אפליקציות אינטרנט חינמי ופתוח, מודרני וביצועים גבוהים. זהו פרוקסי HTTP הפועל להפוך ומהיר שמאחסן תוכן כדי להאיץ את ביצועי שרת האינטרנט שלך, על ידי אחסון תוכן אינטרנטי בזיכרון השרת – במטמון. הוא מוגדר להפעלה כדי לשמש כחזית לשרת מקור כגון אפאצ'י (HTTPD) של שרת האינטרנט.
כאשר לקוח מבקש תוכן, Varnish מקבל את בקשת ה־HTTP, שולח את הבקשה לשרת המקור, מאחסן את האובייקטים שחזרו, ומשיב לבקשת הלקוח. בפעם הבאה שהלקוח מבקש תוכן זה, וארניש ישרת אותו מהמטמון. כך, הוא מפחית את זמן התגובה ואת צריכת רוחב הפס של הרשת בבקשות דומות בעתיד.
Varnish גם פועל כמפנה בקשות HTTP, סוגר אבטחת אפליקציה אינטרנטית, מאזן עומסים, ועוד. הוא מוגדר באמצעות שפת הגדרה גמישה של שפת הגדרת Varnish (VCL) שהיא נרחבת באמצעות מודולי Varnish (נקראים גם VMODs), תומך ב־כוללי צד המקצה (ESL), דחיסת ופיצול Gzip, ועוד.
במאמר זה, תלמד איך להתקין שרת אינטרנט אפאצ'י HTTPD וזיכרון מטמון Varnish 6 על שרת CentOS/RHEL 8 חדש, כולל הגדרת Varnish כדי לרוץ על פני שרת HTTPD.
דרישות מקדימות:
- A server with CentOS 8 Installation
- A server with RHEL 8 installation with enabled Red Hat subscription on your system.
פעם 1: התקנת שרת האינטרנט Apache ב-CentOS/RHEL 8
1. התחל על ידי עדכון כל החבילות התוכנה המותקנות במערכת כך באמצעות פקודת DNF.
# dnf update
2. לאחר מכן, הפעל את הפקודה הבאה כדי להתקין את שרת האינטרנט Apache HTTP מהמאגר AppStream.
# dnf install httpd
3. ברגע שההתקנה הושלמה, התחל את שירות httpd, הפעל אותו להתחלה אוטומטית בעת הפעלת המערכת, ובדוק את מצבו כדי לוודא שהוא פועל ופעיל, באמצעות פקודת systemctl.
# systemctl start httpd # systemctl enable httpd # systemctl status httpd

4. כברירת מחדל 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
5. עכשיו ששרת האינטרנט Apache פועל, אתה יכול להמשיך ולהתקין מטמון Varnish Cache במערכת באמצעות הפקודה הבאה.
# dnf module install varnish

6. לאחר התקנה מוצלחת, אפשר לאמת את גרסת Varnish המותקנת במערכת שלך.
# varnishd -V

7. לאחר מכן, ה־executable הראשי מותקן כ־/usr/sbin/varnishd. בנוסף, קבצי התצורה של Varnish מאוחסנים בתקיית /etc/varnish, כאשר:
- /etc/varnish/default.vcl – הוא קובץ התצורה הראשי של Varnish נכתב באמצעות VCL.
- /etc/varnish/secret – הוא קובץ הסוד של Varnish.
8. עכשיו יש להפעיל את שירות ה־varnish, ובנוסף לכך, להפעיל אותו להתחיל באופן אוטומטי בעת אתחול המערכת במקרה של אתחול שרת ולבדוק את מצבו כדי לוודא שהוא פועל כפי שצריך.
# systemctl start varnish # systemctl enable varnish # systemctl status varnish

שלב 3: הגדרת Apache כדי לעבוד עם Varnish Cache
9. עכשיו הגיע הזמן להגדיר את Varnish Cache לרוץ מקדימה של שירות ה־Apache. כברירת מחדל, שרת ה־Apache מוגדר להאזין בפורט 80, מוגדר זה בקובץ התצורה הראשי /etc/httpd/conf/httpd.conf.
פתח אותו לעריכה באמצעות עורך הטקסט האהוב עליך.
# vi /etc/httpd/conf/httpd.conf
חפש את הפרמטר Listen. כדי להפעיל את Varnish מקדימה של שרת ה־Apache, עליך לשנות את הפורט ברירת המחדל 80 ל־8080 (או לכל פורט אחר שתבחר) כפי שמוצג בתמונת המסך הבאה.
פורט זה יתווסף כפורט שרת האחורי בקובץ התצורה של Varnish מאוחר יותר.

הגדרת מארח וירטואלי עבור כל אתר אינטרנט/יישום שישרת דרך 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 HTTP, יש להעריך את כל השורות בקובץ /etc/httpd/conf.d/welcome.conf או פשוט למחוק את הקובץ.
# rm /etc/httpd/conf.d/welcome.conf
10. לאחר מכן, יש לבדוק את תחביר התצורה של httpd לאימות של כל טעויות. אם הכל בסדר, יש לאתחל שוב את שירות ה- httpd כדי להחיל את השינויים החדשים.
# httpd -t # systemctl restart httpd

הגדרת Varnish עבור Systemd
11. כדי להפעיל Varnish לפני HTTPD, עליך פשוט להגדיר אותו להאזין לבקשות לקוח בפתח ה- HTTP המוגדר כברירת מחדל 80 כפי שמוסבר למטה.
שים לב שב- Varnish Cache 6.0 ומעלה, עליך להגדיר את ה- port שבו שרת ה- 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

שמור את השינויים בקובץ וצא.
התצורה של שרתי Varnish Backend באמצעות VCL
12. כעת, עליך להגדיר את שרת המקור, הידוע במונחים של Varnish כ- backend. זהו השרת שמבין HTTP, שבו Varnish משוחח כדי לאחזר תוכן – במקרה זה httpd. זה מוגדר בקובץ התצורה הראשי /etc/varnish/default.vcl.
# vi /etc/varnish/default.vcl
ישנה קטע תצורת backend ברירת מחדל בשם default. ניתן לשנות " default " ל- server1 (או לכל שם שתבחר, לפי סטנדרטי הסביבה שלך). כברירת מחדל, הפרמטר host מצביע על ה- localhost, בהנחה ששרת ה- backend פועל על ה- localhost.
לאחר מכן יש להגדיר את הפורט ל- 8080 (הפורט שהגדרת בקובץ התצורה של המארח הווירטואלי של Apache), כפי שמוצג בתמונה.
backend server1 { .host = "127.0.0.1"; .port = "8080"; }

אם שרת ה- backend שלך פועל על מארח שונה, למשל, שרת אחר עם כתובת 10.42.1.10, אז הפרמטר host צריך להצביע לכתובת זו.
backend server1 { .host = "10.42.1.10"; .port = "8080"; }
שמור את הקובץ וסגור אותו.
13. לאחר שעשית את כל השינויים הדרושים לגבי Varnish, הפעל מחדש את תצורת מנהל ה- systemd כדי לשקף את השינויים החדשים בקובץ השירות של Varnish וגם לאתחל מחדש את שירות Varnish כדי ליישם את כל השינויים.
# systemctl daemon-reload # systemctl restart varnish
14. בנקודה זו, Varnish ו־Apache צריכים להאזין כעת בפורט 80 ו־8080 בהתאמה. ניתן לאשר זאת באמצעות פקודת סטטיסטיקת סוקטים.
# ss -tpln

שלב 4: בדיקת מטמון Varnish והגדרת Apache
14. כדי לבדוק את ההגדרה של Varnish Cache-HTTPD, פתחו דפדפן אינטרנט ונווטו באמצעות כתובת ה־IP של השרת או באמצעות ה־FQDN כפי שמוצג בתמונת המסך הבאה.
http://10.42.0.144 OR http://www.tecmin.lan
אז בדקו אם עמודי האינטרנט מוצגים דרך Varnish Cache כפי שמוצג להלן. בדקו את כותרות ה־HTTP על ידי לחיצה ימנית על העמוד המוצג, בחירת Inspect כדי לפתוח את כלי הפיתוח, לאחר מכן לחיצה על לשונית ה־Network, ולהפעיל מחדש את העמוד. לאחר מכן בחרו בבקשה כדי לראות את כותרות ה־HTTP ולאשר זאת כפי שמוצג בתמונת המסך הבאה.

בנוסף, ניתן להריץ את הפקודה הבאה ב־curl כדי לאמת זאת.
# curl -I http:///10.42.0.144 OR #curl -I http:///www.tecmint.lan

תוכניות עזר שימושיות של מטמון Varnish
15. נסיים את המדריך על ידי הסתכלות על כמה מהתוכניות השימושיות שמגיעות עם ההפצה של מטמון Varnish. הן כוללות תוכניות לניהול מטמון Varnish, הצגת רשומות יומן מפורטות, וצפייה בסטטיסטיקות ביצועי Varnish כפי שמתואר להלן.
varnishadm
הראשון הוא varnishadm שמשמש לניהול מופע רץ של Varnish. זה מקים חיבור ממשק שורת פקודה ל־varnishd. זה יכול לשפיע על מופע רץ של Varnish על ידי התחלת ועצירת varnishd, שינוי פרמטרים בתצורה, טעינה מחדש של ה־VCL, רישום של backends, ועוד.
# varnishadm > backend.list

למידע נוסף, קרא man varnishadm.
varnishlog
התוכנית הבאה היא varnishlog שמשמשת לגישה לנתונים הספציפיים לבקשה (כלומר מידע על לקוחות ובקשות ספציפיות). זה מספק כמויות גדולות של מידע, ולכן נדרש לסנן אותו בדרך כלל.
# varnishlog

למידע נוסף, קרא את man varnishlog.
varnishstat
יש לנו גם varnishstat (סטטיסטיקות של Varnish) שמשמש לגישה לסטטיסטיקות כוללות כמו מספר הבקשות הכולל, מספר האובייקטים, ועוד.
# varnishstat

למידע נוסף, קרא את man varnishstat.
varnishtop
ואז יש לנו varnishtop שהוא כלי שקורא את יומן ה־Varnish ומציג רשימה מעודכנת באופן רציף של הערכים הנפוצים ביותר ביומן.
# varnishtop

למידע נוסף, קרא את man varnishtop.
varnishhist
עוד כלי שימושי הוא varnishhist (היסטוריה של Varnish) הכלי קורא לוגים של Varnish ומציג היסטוגרמה מתעדכנת באופן רציף המראה את ההפצה של הבקשות האחרונות N לפי עיבודן.
# varnishhist

למידע נוסף, קראו את המדריך man 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/