אופטימיזציה של שרת וירטואלי לאחסון וורדפרס

אז, החלטת לבסוף להעביר את האתר מבוסס וורדפרס שלך מאחסון שיתופי לשרת וירטואלי. במדריך הבא תוכל למצוא מספיק טיפים על איך להגדיר את שרת ה-Apache בצורה טובה יותר ע"י שינויים לקובץ ה httpd.conf וכמה קבצים נוספים. אפאצ'אי הוא מנוע מהיר, אמין וגמיש לאתרי אינטרנט אבל ההגדרות ברירת מחדל שלו משתמשות בהמון משאבים מיותרים, בעיקר כשאתה מפעיל אותו על שרת VPS עם מפרט חלש. אם אתה משתמש בשרת וירטואלי על מנת לאחסן רק את האתר שמבוסס על וורדפרס, תוכל לבצע מספר שינויים קטנים על מנת לקבל את הביצועים המיטביים מהשרת שלך.

אז נתחיל בביטול מודולים שלא הכרחיים על מנת להפעיל את הוורדפרס, בעזרת עורך הטקסט המועדף עליך (אישית, אני אוהב את nano), ערוך את הקובץ /etc/httpd/conf/httpd.conf וחפש את הקטע שבו השרת טוען את כל המודולים השונים, חפש את הביטוי LoadModule ותראה קטע ארוך שבו השרת טוען מודולים, דאג לבטל (בעזרת # בתחילת השורה) את כל השורות פרט לשורות הבאות:

LoadModule authz_host_module modules/mod_authz_host.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule dir_module modules/mod_dir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so

עוד טריק מאוד שימושי הוא לשנות את ההגדרות לכמות תהליכים מורשים עבור האפצ'אי ותהליכים שמוגדרים אצלו בתור סטנד ביי (Spare) שמותר לו להריץ. הטריק הבא חשוב במיוחד אם אתה מפעיל את הוורדפרס על שרת VPS קטן שעליו נמצא גם האפצ'אי וגם המסד נתונים. אלא אם כן יש לך תעבורה מאוד מאוד גדולה באופן קבוע (ובמקרה הזה מומלץ לשרת את השרת הוירטואלי), אין סיבה להריץ את ההגדרות שמגיעות בתור ברירת מחדל. ערוך את הקובץ /etc/httpd/conf/extra/httpd-mpm.conf ושנה את ההגדרות על פי הפרמטרים הבאים:

MinSpareServers וMaxSpareServers הם ההגדרות ששולטות בכמות התהליכים שנמצאים במצב סטנד-באי ומותר לשרת שלך להשתמש בהם ברגעים של עומס.
StartServers מגדיר את כמות התהליכים שהאפצ'אי מריץ ברגע שמפעילים אותו בתור ברירת מחדל.

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

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

לסיכום, הנה הערכים שאני ממליץ שיהיו בקובץ הזה בשרת VPS קטן שמשרת אתר וורדפרס על מנת שיעבוד בצורה האופטימאלית:

<IfModule prefork.c>
StartServers 3
MinSpareServers 3
MaxSpareServers 10
ServerLimit 50
MaxClients 50
MaxRequestsPerChild 2000
</IfModule prefork.c>

זכור תמיד: אלו לא תמיד הערכים האולטימטיביים, וההגדרות משתנות בהתאם לגודל השרת הוירטואלי שלך וגודל האתר והבקשות שהאפצ'אי צריך להציג לגולש.