כאשר אתה מקבל שרת וירטואלי ייעודי להפעלת האתר שלך, הסיכויים טובים שהוא מוגדר לכולם, ולא מותאם אישית למקסימום ביצועים להפעלת אתר.
תוכן[ להתחבא ]
|
סקירה כללית
ישנם מספר אזורים בעייתיים בהם אנו רוצים למקסם את הביצועים:
-
תצורת לינוקס
בדרך כלל פועלים שירותים שאינם צריכים להיות, מבזבזים זיכרון שיכול לשמש לחיבורים רבים יותר. -
תצורת MySQL
לעתים קרובות הגדרות ברירת המחדל מבוססות על שרת קטן, אנו יכולים להוסיף כמה שינויים מרכזיים כדי להגדיל את הביצועים במידה רבה. -
תצורת אפאצ'י
כברירת מחדל, רוב ספקי האירוח מארחים התקנת אפאצ'י כמעט בכל מודול מותקן. אין שום סיבה לטעון מודולים אם אינך מתכוון להשתמש בהם אי פעם. -
תצורת PHP
תצורת ה- PHP המוגדרת כברירת מחדל מנופחת באופן דומה, בדרך כלל מותקנים המון מודולים מיותרים מיותרים. -
מטמון אופקוד של PHP
במקום לאפשר ל- PHP לקמפל מחדש את הסקריפטים בכל פעם מחדש, מטמון אופקוד יאחסן בזיכרון את הסקריפטים המהוללים כדי להעלות ביצועים עצומים. -
גיבויים
כנראה שתגדיר כמה גיבויים אוטומטיים, מכיוון שספק האירוח שלך לא יעשה זאת עבורך. -
בִּטָחוֹן
בטח, לינוקס מאובטחת מספיק כברירת מחדל, אך בדרך כלל יש כמה בעיות אבטחה בולטות שתוכלו לתקן בכמה הגדרות מהירות.
תצורת לינוקס
יש מספר לא קטן של שינויים שאתה יכול לעשות, אשר ישתנו מעט בהתאם לשרת שבו אתה משתמש. השינויים הללו מיועדים לשרת שמריץ CentOS, אך עליהם לעבוד עבור מרבית שרתי ה- DV.
השבת DNS
אם ספק האירוח שלך מטפל ב- DNS עבור הדומיין שלך (סביר להניח), תוכל להשבית את פעולת שירות ה- DNS.
השבת dns /etc/init.d/ עצירה בשם chmod 644 /etc/init.d/ בשם
הפקודה chmod מסירה את הרשאת הביצוע מהסקריפט, ומונעת ממנה לפעול בעת ההפעלה.
השבת את SpamAssassin
אם אינך משתמש בחשבונות דואר אלקטרוני בשרת עצמו, אל תטרח להריץ כלים נגד ספאם. (כמו כן כדאי לבדוק את Google Apps, פתרון דוא"ל טוב בהרבה)
עצור /etc/init.d/psa-spamassassin chmod 644 /etc/init.d/psa-spamassassin
השבת את xinetd
בתהליך xinetd ישנם מספר תהליכים אחרים, שאף אחד מהם אינו שימושי לשרת אינטרנט טיפוסי.
/etc/init.d/xinetd עצירה chmod 644 /etc/init.d/xinetd
הגבל את השימוש בזיכרון Plesk
אם אתה משתמש בלוח plesk, אתה יכול להכריח אותו להשתמש בפחות זיכרון על ידי הוספת קובץ אפשרויות.
vi /usr/local/psa/admin/conf/httpsd.custom.include
הוסף את השורות הבאות לקובץ:
MinSpareServers 1 MaxSpareServers 1 StartServers 1 מקס קלינטים 5
שים לב כי ידוע כי אפשרות זו עובדת על שרתי MediaTemple DV, אך לא נבדקה באף אחד אחר. (לִרְאוֹת הפניות )
השבת או כבה את Plesk (אופציונלי)
אם אתה משתמש רק בפלסק פעם בשנה, יש מעט מאוד סיבה להשאיר אותו בכלל פעיל. שימו לב כי שלב זה הוא אופציונלי לחלוטין, ומתקדם מעט יותר.
הפעל את הפקודה הבאה כדי לכבות את plesk:
עצור /etc/init.d/psa
באפשרותך להשבית את פעולתו בעת ההפעלה על ידי הפעלת הפקודה הבאה:
chmod 644 /etc/init.d/psa
שים לב שאם תשבית אותו, לא תוכל להפעיל אותו ידנית מבלי לשנות את הרשאות הקובץ בחזרה (chmod u + x).
תצורת MySQL
הפעל מטמון שאילתות
פתח את קובץ /etc/my.cnf שלך והוסף את השורות הבאות בסעיף [mysqld] כך:
[mysqld] query-cache-type = 1 query-cache-size = 8 מיליון
תוכל להוסיף זיכרון נוסף למטמון השאילתות אם תרצה בכך, אך אל תשתמש יותר מדי.
השבת TCP / IP
מספר מפתיע של מארחים מאפשרים גישה ל- MySQL ב- TCP / IP כברירת מחדל, מה שאין טעם לאתר. אתה יכול להבין אם mysql מאזין ב- TCP / IP על ידי הפעלת הפקודה הבאה:
netstat -an | גרפ 3306
כדי להשבית, הוסף את השורה הבאה לקובץ /etc/my.cnf שלך:
דלג על רשת
תצורת אפאצ'י
פתח את קובץ httpd.conf שלך, שנמצא לעתים קרובות ב /etc/httpd/conf/httpd.conf
מצא את הקו שנראה כך:
פסק זמן 120
ושנה זאת לזה:
פסק זמן 20
כעת מצא את החלק הכולל שורות אלה והתאם למשהו דומה:
StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 מקס קלינטים 100 MaxRequestsPerChild 4000
תצורת PHP
אחד הדברים שכדאי לזכור כששינויים בשרת בפלטפורמת PHP הוא שכל שרשור אפאצ'י בודד יטען את ה- PHP במיקום נפרד בזיכרון. המשמעות היא שאם מודול שאינו בשימוש מוסיף 256K זיכרון ל- PHP, על פני 40 אשכולות אפאצ'י אתה מבזבז 10MB זיכרון.
הסר מודולי PHP לא נחוצים
יהיה עליך לאתר את קובץ ה- php.ini שלך, שבדרך כלל נמצא בכתובת /etc/php.ini (שים לב שבחלק מההפצות תהיה ספרייה /etc/php.d/ עם מספר קבצי .ini, אחד לכל מודול.
הגב על כל שורות מודול הטעינה עם המודולים הבאים:
- odbc
- snmp
- pdo
- odbc pdo
- mysqli
- מעמיס קוביות יונים
- ג'סון
- imap
- ldap
- קללות
טודו: הוסף מידע נוסף כאן.
מטמון אופקוד של PHP
ישנם מספר מטמונים של קוד צופה שתוכלו להשתמש בהם, כולל APC, eAccelerator ו- Xcache, האחרון הוא ההעדפה האישית שלי בגלל יציבות.
הורד את xcache וחלץ אותו לספריה ואז הפעל את הפקודות הבאות מספריית המקור של xcache:
phpize ./configure - הפעל- xcache עשה לבצע התקנה
פתח את קובץ php.ini והוסף קטע חדש ל- xcache. יהיה עליך להתאים את הנתיבים אם מודולי ה- php שלך נטענים ממקום אחר.
vi /etc/php.ini
הוסף לקטע את החלק הבא:
[xcache-common] zend_extension = /usr/lib/php/modules/xcache.so [xcache.admin] xcache.admin.user = "שם המשתמש שלי" xcache.admin.pass = "putanmd5hashhere" [xcache] ; שנה את xcache.size כדי לכוון את גודל מטמון ה- opcode xcache.size = 16M xcache.shm_scheme = "ממפה" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0 ; שנה את xcache.var_size כדי להתאים את גודל המטמון המשתנה xcache.var_size = 1 מיליון xcache.var_count = 1 xcache.var_slots = 8K xcache.var_ttl = 0 xcache.var_maxttl = 0 xcache.var_gc_interval = 300 xcache.test = כבוי xcache.readonly_protection = מופעל xcache.mmap_path = "/ tmp / xcache" xcache.coredump_directory = "" xcache.cacher = מופעל xcache.stat = מופעל xcache.optimizer = כבוי
טודו: צריך להרחיב את זה מעט ולקשר ל- xcache בהפניות.
גיבויים
יש מעט מאוד חשוב מאשר גיבויים אוטומטיים של האתר שלך. ייתכן שתוכל לקבל גיבויים של תמונת מצב מספק האחסון שלך, שגם הם מאוד שימושיים, אך אני מעדיף לקבל גם גיבויים אוטומטיים.
צור סקריפט גיבוי אוטומטי
בדרך כלל אני מתחיל ביצירת ספרייה / גיבויים, ומתחתיה ספריית / גיבויים / קבצים. אתה יכול להתאים את הנתיבים האלה אם אתה רוצה.
mkdir -p / גיבויים / קבצים
כעת צור סקריפט backup.sh בתוך ספריית הגיבויים:
vi /backups/backup.sh
הוסף לקובץ את הדברים הבאים תוך התאמת הנתיבים וסיסמת mysqldump לפי הצורך:
#! / bin / sh
תאריך = `תאריך +% d% m% y% H% M`
mysqldump -uadmin -pPASSWORD DATABASENAME> /backups/files/dbbackup$THEDATE.bak
tar -cf /backups/files/sitebackup$THEDATE.tar / var / www / vhosts / my-website-path / httpdocs
gzip /backups/files/sitebackup$THEDATE.tar
find / backups / files / site * -mtime +5 -exec rm {} \;
find / backups / files / db * -mtime +5 -exec rm {} \;
הסקריפט ייצור תחילה משתנה תאריכים כך שכל הקבצים ייקראו זהים לגיבוי יחיד, ואז יזרוק את מסד הנתונים, ייסר את קבצי האינטרנט וירכיב אותם. פקודות החיפוש משמשות להסרת קבצים מעל גיל חמישה ימים, מכיוון שאינך מעוניין בכונן שלך להיגמר.
הפוך את הסקריפט להפעלה על ידי הפעלת הפקודה הבאה:
chmod u + x / backups / backup.sh
בשלב הבא תצטרך להקצות אותו להפעלה אוטומטית על ידי cron. ודא שאתה משתמש בחשבון שיש לו גישה לספריית הגיבויים.
crontab -e
הוסף את השורה הבאה לכרטיסייה:
1 1 * * * /backups/backup.sh
באפשרותך לבדוק את הסקריפט מבעוד מועד על ידי הפעלתו תוך כניסה לחשבון המשתמש. (בדרך כלל אני מריץ את הגיבויים כשורש)
סנכרן גיבויים מחוץ לאתר עם Rsync
עכשיו שיש לך גיבויים אוטומטיים של השרת שלך פועל, אתה יכול לסנכרן אותם במקום אחר באמצעות כלי השירות rsync. תרצה לקרוא מאמר זה כיצד להגדיר מקשי ssh לצורך כניסה אוטומטית: הוסף מפתח SSH ציבורי לשרת מרוחק בפקודה אחת
אתה יכול לבדוק את זה על ידי הפעלת פקודה זו במכונת לינוקס או מק במקום אחר (יש לי שרת לינוקס בבית, שם אני מפעיל את זה)
rsync -a [email protected]: / גיבויים / קבצים / * / offsitebackups /
זה ייקח לא מעט זמן לרוץ בפעם הראשונה, אך בסופו של דבר המחשב המקומי שלך צריך לקבל עותק של ספריית הקבצים בספריה / offsitebackups /. (הקפד ליצור את הספרייה לפני הפעלת הסקריפט)
אתה יכול לתזמן את זה על ידי הוספתו לשורת crontab:
crontab -e
הוסף את השורה הבאה, שתפעל rsync כל שעה בסימן 45 הדקות. תוכלו לשים לב שאנו משתמשים כאן במלוא הנתיב לסנכרון מחדש.
45 * * * * / usr / bin / rsync -a [email protected]: / גיבויים / קבצים / * / offsitebackups /
אתה יכול לתזמן את זה לרוץ בזמן אחר, או רק פעם אחת ביום. זה באמת תלוי בך.
שים לב שיש הרבה כלי עזר שיאפשר לך לסנכרן באמצעות ssh או ftp. אינך צריך להשתמש ב- rsync.
בִּטָחוֹן
הדבר הראשון שאתה רוצה לעשות הוא לוודא שיש לך חשבון משתמש רגיל לשימוש באמצעות ssh, וודא שאתה יכול להשתמש ב- su כדי לעבור לשורש. זה רעיון רע מאוד לאפשר כניסה ישירה עבור root over ssh.
השבת כניסה לשורש באמצעות SSH
ערוך את הקובץ / etc / ssh / sshd_config וחפש את השורה הבאה:
# PermitRootLogin כן
שנה את השורה כך שתראה כך:
PermitRootLogin no
וודא שיש לך חשבון משתמש רגיל ותוכל su לשורש לפני שתבצע את השינוי הזה, אחרת אתה עלול לנעול את עצמך.
השבת SSH גרסה 1
אין באמת שום סיבה להשתמש בשום דבר מלבד SSH גרסה 2, מכיוון שהוא מאובטח יותר מגרסאות קודמות. ערוך את הקובץ / etc / ssh / sshd_config וחפש את הקטע הבא:
# פרוטוקול 2,1 פרוטוקול 2
ודא שאתה משתמש רק בפרוטוקול 2 כפי שמוצג.
הפעל מחדש את שרת SSH
כעת תצטרך להפעיל מחדש את שרת SSH כדי שהדבר ייכנס לתוקף.
/etc/init.d/sshd הפעלה מחדש
בדוק אם יש יציאות פתוחות
אתה יכול להשתמש בפקודה הבאה כדי לראות אילו יציאות השרת מאזין:
netstat -an | grep האזנה
ממש לא אמור להיות לך שום דבר הקשבה מלבד יציאות 22, 80, ואולי 8443 עבור plesk.
הגדר חומת אש
באפשרותך להגדיר חומת אש של iptables כדי לחסום חיבורים נוספים. למשל, אני בדרך כלל חוסם גישה לכל יציאות אחרות מלבד רשת העבודה שלי. אם יש לך כתובת IP דינמית, תרצה להימנע מאפשרות זו.
אם כבר ביצעתם את כל השלבים במדריך זה עד כה, ככל הנראה אין צורך להוסיף גם חומת אש לתערובת, אך טוב להבין את האפשרויות שלכם.
ראה גם
- שימוש ב- Iptables בלינוקס