איך להתקין את מטמון Varnish עבור Apache ב-CentOS/RHEL 8

זיכרון מטמון Varnish הוא מאיץ אפליקציות אינטרנט חינמי ופתוח, מודרני וביצועים גבוהים. זהו פרוקסי HTTP הפועל להפוך ומהיר שמאחסן תוכן כדי להאיץ את ביצועי שרת האינטרנט שלך, על ידי אחסון תוכן אינטרנטי בזיכרון השרת – במטמון. הוא מוגדר להפעלה כדי לשמש כחזית לשרת מקור כגון אפאצ'י (HTTPD) של שרת האינטרנט.

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

Varnish גם פועל כמפנה בקשות HTTP, סוגר אבטחת אפליקציה אינטרנטית, מאזן עומסים, ועוד. הוא מוגדר באמצעות שפת הגדרה גמישה של שפת הגדרת Varnish (VCL) שהיא נרחבת באמצעות מודולי Varnish (נקראים גם VMODs), תומך ב־כוללי צד המקצה (ESL), דחיסת ופיצול Gzip, ועוד.

במאמר זה, תלמד איך להתקין שרת אינטרנט אפאצ'י HTTPD וזיכרון מטמון Varnish 6 על שרת CentOS/RHEL 8 חדש, כולל הגדרת Varnish כדי לרוץ על פני שרת HTTPD.

דרישות מקדימות:

פעם 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
Verify Apache Web Server Status

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
Install Varnish Cache on CentOS 8

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

# varnishd -V
Check Varnish Version

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
Verify Varnish Cache Status

שלב 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 מאוחר יותר.

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 ומעלה, עליך להגדיר את ה- 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
Change Varnish Listen Port

שמור את השינויים בקובץ וצא.

התצורה של שרתי 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";
}
Configure Varnish Backend Servers

אם שרת ה- 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
Check Varnish and Apache Listening Sockets

שלב 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 ולאשר זאת כפי שמוצג בתמונת המסך הבאה.

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

15. נסיים את המדריך על ידי הסתכלות על כמה מהתוכניות השימושיות שמגיעות עם ההפצה של מטמון Varnish. הן כוללות תוכניות לניהול מטמון Varnish, הצגת רשומות יומן מפורטות, וצפייה בסטטיסטיקות ביצועי Varnish כפי שמתואר להלן.

varnishadm

הראשון הוא varnishadm שמשמש לניהול מופע רץ של Varnish. זה מקים חיבור ממשק שורת פקודה ל־varnishd. זה יכול לשפיע על מופע רץ של Varnish על ידי התחלת ועצירת varnishd, שינוי פרמטרים בתצורה, טעינה מחדש של ה־VCL, רישום של backends, ועוד.

# 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

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