איך להתקין את Varnish ולבצע בדיקת ביצועי שרת אינטרנט

חשבו לרגע על מה קרה כאשר עברתם לדף הנוכחי. אתם או לחצתם על קישור שקיבלתם דרך ניוזלטר, או על הקישור בדף הבית של Tecmint.com ואז נובעת לכם למאמר זה.

בכמה מילים, אתם (או בעצם הדפדפן שלכם) שלחתם בקשת HTTP לשרת האינטרנט שמארח אתר זה, והשרת שלח תשובת HTTP בחזרה.

למראה פשוט כזה, התהליך הזה כולל הרבה יותר מזה. עבודה רבה הייתה צריכה להתבצע בצד השרת כדי להציג את הדף המעוצב שאתם רואים עם כל המשאבים בו – סטטיים ודינמיים.

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

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

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

איך Varnish עובד

How Varnish Works

התקנת מטמון Varnish בשרת Linux

הפוסט הזה מניח שכבר התקנת תשתית LAMP או LEMP. אם לא, יש להתקין אחת מהתשתיות הללו לפני להמשיך.

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

כמו כן, שימו לב שהמאגרים של הפרויקט תומכים רק במערכות 64-בית, ואילו עבור מכונות 32-בית, תצטרכו להשתמש במאגרים שנשמרים רשמית על ידי התפריט שלכם.

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

התקן Varnish בלינוקס מבוסס Debian

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

# apt update 
# apt install varnish 	
Install Varnish Cache in Debian

התקן Varnish בלינוקס מבוסס RHEL

בהתקנים המבוססים על RHEL כגון CentOS, Rocky ו-AlmaLinux, תצטרך להפעיל את המאגר EPEL לפני התקנת Varnish באמצעות הפקודה yum כפי שמוצג.

# yum install epel-release
# yum update
# yum install varnish 
Install Varnish Cache in RHEL

אם ההתקנה הסתיימה בהצלחה, תהיה לך אחת מהגרסאות הבאות של varnish תלוי בהתקן שלך:

# varnishd -V

varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64)

לבסוף, עליך להתחיל את Varnish באופן ידני אם התהליך התקנה לא עשה זאת עבורך ולאפשר לו להתחיל בהתנעה.

# systemctl start varnish
# systemctl enable varnish
# systemctl status varnish
Check Varnish Cache Status

כתוצאה מכך, בשעה 6081 משמשת השירות של varnish ואפשר לאשר זאת על ידי הריצה של הפקודת netstat.

# netstat -tunlp | grep 6081
Check Varnish Cache Port

הגדרת מטמון Varnish Cache ב-Linux

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

  1. שנה את הפורט הברירת מחדל 6081 שבו Varnish מקשיב לפורט 80.
  2. שנה את הפורט הברירת מחדל שבו שרת האינטרנט מקשיב לפורט 8080 במקום הברירת מחדל 80.
  3. הפנה תנועת תשתית חדירה מ-Varnish לשרת האינטרנט. למרבה המזל, Varnish עושה זאת אוטומטית לאחר שביצענו את השלבים 1) ו-2).

שינוי פורט Varnish

תהליך varnishd נשלט על ידי systemd ויש לו קובץ יחידה במיקום /usr/lib/systemd/system/varnish.service, שמחזיק את ההתקנה הפעילה הברירת מחדל של Varnish.

כאן, אנו צריכים לשנות את הפורט הברירת מחדל של varnish מ-6081 לפורט 80 וגודל המטמון ל-1GB כפי שמוצג על ידי הרצת הפקודה הבאה, שתפתח את קובץ היחידה בעורך כמוצג.

הערה: אפשר לשנות את כמות הזיכרון בהתאם למשאבי החומרה שלך או לבחור לשמור קבצי מטמון לכונן.

$ sudo systemctl edit --full varnish
OR 
# systemctl edit --full varnish
Configure Varnish Cache in Linux

לאחר שערכת שינויים בקובץ /etc/systemd/system/varnish.service, עליך לטעון מחדש את דייר Systemd על ידי הרצת הפקודה הבאה:

# systemctl daemon-reload

שינוי פורט Apache או Nginx

לאחר ששינית את פורט ורניש הפוך, עכשיו אתה צריך לשנות את פורט השרת האינטרנט שלך אפטשי או נג'יקס מפורט ברירת המחדל 80 לפורט הרשת הנפוץ ביותר הרוב המשוער של תשתיות הרשת כלומר 8080.

---------- On Debian-based Systems ---------- 
# nano /etc/apache2/ports.conf      [On Apache]
# /etc/nginx/sites-enabled/default  [On Nginx]

---------- On RHEL-based Systems ----------
# vi /etc/httpd/conf/httpd.conf   [On Apache]
# vi /etc/nginx/nginx.conf        [On Nginx]  
Change Apache Port

לאחר שביצעת שינויים, אל תשכח להפעיל מחדש וורניש הפוך והשרת האינטרנט.

# systemctl restart varnish 

---------- On Debian-based Systems ---------- 
# systemctl restart apache2     
# systemctl restart nginx

---------- On RHEL-based Systems ----------
# systemctl restart httpd     
# systemctl restart nginx     

בדיקת מטמון ורניש בלינוקס

הבדיקה הראשונה מכילה ביצוע בקשה HTTP באמצעות פקודת curl ואימות שהיא מנוהלת על ידי ורניש:

# curl -I http://localhost
Check Varnish Cache Status

וורניש כולל גם שתי כלים שימושיים מאוד:

  • צפייה בפנקסי ורניש בזמן אמת, הנקרא בצורה אינטואיטיבית varnishlog.
  • הצגת סטטיסטיקות מטמון ורניש, הנקרא varnishstat.

כבדיקה שנייה, בסרטון המסך הבא, נציג את גיליונות החשבון והסטטיסטיקות בשרת סנטוקס (dev1, חצי המסך העליון) ובשרת דביאן (dev2, חצי המסך התחתון) כשבקשות HTTP נשלחות ותשובות נקלטות.

בדיקת בסיס ביצועים של שרת אינטרנט

במבחן השלישי והאחרון שלנו נבדוק את שירותי השרת האינטרנט ואת Varnish באמצעות כלי הבדיקה ab benchmarking tool ונשווה את זמני התגובה ועומס המעבדה בכל מקרה.

בדוגמה מסוימת זו נשתמש בשרת CentOS, אך אפשר להשתמש בכל פיתוח ולקבל תוצאות דומות. שימו לב לload average בראש ולשורת הבקשות לשנייה בפלט של ab.

עם ab, נשלח 50 (-c50) בקשות מקבוצתיות בו זמנית ונחזור על המבחן 1000000 פעמים (מצוין על ידי -n1000000). Varnish יחזיר מספר גבוה יותר של בקשות לשנייה ועומס ממוצע נמוך בהרבה.

Important: זכרו שVarnish מקשב לנתיב80 (הנתיב הברור HTTP), ואילו Apache מקשב לנתיב8080. אפשר גם לציין את כמות הזמן הדרוש לכל מבחן.

# ab -c 50 -n 100000 http://localhost/index.html

מסקנה

במאמר זה דנו באופן הכונן של מטמון Varnish מול שרת אינטרנט, Apache, או Nginx. שימו לב שלא חפרנו עמוקות בdefault.vcl קובץ ההתקנה, שמאפשר לנו להתאים את מדיניות הכונן עוד יותר.

עכשיו ייתכן שתרצה להתייחס לתיעוד הרשמי לדוגמאות נוספות של התקנה או להשאיר תגובה באמצעות טופס התגובה למטה.

Source:
https://www.tecmint.com/install-varnish-cache-server/