12Sep
כאשר אתה מקבל שרת וירטואלי ייעודי להפעלת אתר האינטרנט שלך, רוב הסיכויים כי הוא מוגדר עבור כולם, ולא מותאם אישית כדי למקסם את הביצועים להפעלת אתר אינטרנט.
- 2.1 השבתת DNS
- 2.2 השבתה של SpamAssassain
- 2.3 Disable xinetd
- 2.4 הגבלת שימוש בזיכרון Plesk
- 2.5 השבתה או השבתה של Plesk( אופציונלי)
- 3.1 הפעלת מטמון שאילתה
- 3.2 השבתת TCP / IP
- 5.1 הסרת מודולי PHP לא נחוצים
- 5.2 PHP Opcode Cache
- 6.1 יצירת סקריפט גיבוי אוטומטי
- 6.2 סנכרון גיבויים מחוץ לאתר עם Rsync
- 7.1 השבת שורשהתחברות באמצעות SSH
- 7.2 השבת SSH גירסה 1
- 7.3 הפעל מחדש את SSH Server
- 7.4 בדוק אם יש יציאות פתוחות
- 7.5 התקנת חומת אש
סקירה
ישנם מספר תחומים בעייתיים שבהם אנוt כדי למקסם את הביצועים:
- לינוקס תצורה
יש בדרך כלל שירותים הפועלים כי לא צריך להיות, בזבוז זיכרון שיכול לשמש עבור חיבורים נוספים. - תצורת MySQL
לעתים קרובות את הגדרות ברירת המחדל מבוססים על שרת קטן, אנחנו יכולים להוסיף כמה שינויים מרכזיים כדי להגדיל את הביצועים הרבה. - תצורת אפאצ 'י
כברירת מחדל רוב ספקי אירוח להתקין אפאצ' י עם כמעט כל מודול מותקן.אין סיבה לטעון מודולים אם אתה אף פעם לא הולך להשתמש בהם. - תצורת PHP
תצורת ברירת המחדל של PHP נפוחה באופן דומה, יש בדרך כלל טון של מודולים מיותרים נוספים מותקנים. - PHP Opcode Cache
במקום לאפשר PHP להרכיב מחדש את הסקריפטים בכל פעם, מטמון opcode יהיה מטמון את הסקריפטים הידור בזיכרון עבור מגביר את הביצועים הגדולים. - גיבויים
צריך כנראה להגדיר כמה גיבויים אוטומטיים, שכן ספק האירוח שלך לא הולך לעשות את זה בשבילך. - אבטחה
בטח, לינוקס מאובטח מספיק כברירת מחדל, אבל יש בדרך כלל כמה בעיות אבטחה נועץ שאתה יכול לתקן עם כמה הגדרות מהירות.
לינוקס תצורה
יש לא מעט tweaks אתה יכול לעשות, אשר ישתנה מעט על בסיס השרת אתה משתמש.אלה tweaks הם עבור שרת פועל CentOS, אבל הם צריכים לעבוד עבור רוב שרתי DV.
השבת את DNS
אם ספק האירוח שלך מטפל ב- DNS עבור התחום שלך( סביר), תוכל לבטל את הפעלת שירות ה- DNS.
להשבית dns /etc/init.d/ בשם להפסיק chmod 644 /etc/init.d/ בשםהפקודה chmod מסיר אישור לבצע את התסריט, לעצור את זה מלהפעיל את האתחול.
השבת SpamAssassain
אם אינך משתמש בחשבונות דוא"ל בשרת שלך עצמו, אל תטרח להפעיל כלים נגד דואר זבל.(גם אתה צריך לבדוק את Google Apps, פתרון דוא"ל הרבה יותר טוב)
/etc/init.d/ psa-spamassassin להפסיק chmod 644 /etc/init.d/ psa-spamassassinהשבת Xinetd
תהליך xinetd בתים מספר תהליכים אחרים, שאף אחד מהם אינם שימושיים עבור שרת אינטרנט טיפוסי.
/etc/init.d/ עצירת זיכרון chmod 644 /etc/init.d/ xDetdשימוש בזיכרון Plesk זיכרון
אם אתה משתמש בלוח הפלאסק, אתה יכול להכריח אותו להשתמש בזיכרון פחות על ידי הוספת קובץ אפשרויות.
vi /usr/local/psa/admin/conf/ httpsd.custom.includeהוסף את השורות הבאות לקובץ:
MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5שים לב כי אפשרות זו ידועה לעבוד על שרתי MediaTemple DV, אך לא נבדקה על אחרים.(ראה הפניות)
השבת או כבה את Plesk( אופציונלי)
אם אתה משתמש רק ב- Plesk פעם בשנה, יש סיבה קטנה מאוד להשאיר אותו פועל כלל.שים לב כי שלב זה הוא אופציונלי לחלוטין, מעט יותר מתקדמים.
הפעל את הפקודה הבאה כדי לכבות את הפלאסק:
/etc/init.d/ psa stopניתן לבטל את הפעלתו בעת ההפעלה בעת הפעלת הפקודה הבאה:
chmod 644 /etc/init.d/ psaשים לב שאם תשבית אותו, לא תוכל להפעיל אותו באופן ידני ללאשינוי הרשאות הקובץ בחזרה( chmod u + x).
MySQL Configuration
אפשר מטמון שאילתה
פתח את הקובץ My.cnf /etc/ והוסף את השורות הבאות בקטע [mysqld] שלך כך:
[mysqld] שאילתת מטמון-סוג = 1 שאילתת מטמון-גודל = 8Mהוסף זיכרון נוסף למטמון השאילתה אם תרצה, אך אל תשתמש יותר מדי.
השבת TCP / IP
מספר מפתיע של המארחים לאפשר גישה MySQL על TCP / IP כברירת מחדל, אשר לא הגיוני עבור אתר אינטרנט.אתה יכול להבין אם MySQL הוא מקשיב על TCP / IP על ידי הפעלת הפקודה הבאה:
netstat -an |grep 3306כדי להשבית, הוסף את השורה הבאה לקובץ /etc/ /etc/:
דלג על רשתתצורת Apache
פתח את הקובץ httpd.conf שלך, שנמצא לעתים קרובות ב- /etc/httpd/conf/ httpd.conf
מצא את השורה הנראית כך:
TimeD 120ולשנות את זה:
פסק זמן 20עכשיו למצוא את החלק הכולל את השורות הללו, ולהתאים משהו דומה:
StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000תצורת PHP
אחד הדבריםזכור בעת tweaking שרת על פלטפורמת PHP היא שכל חוט אפאצ 'י אחד הולך לטעון את PHP במיקום נפרד בזיכרון.משמעות הדבר היא כי אם מודול שאינו בשימוש מוסיף 256k של זיכרון ל- PHP, על פני 40 פתילים אפאצ 'י אתה מבזבז 10MB של זיכרון.
הסר מודולי PHP לא נחוצים
יהיה עליך לאתר את קובץ php.ini שלך, שבדרך כלל נמצא ב- /etc/ php.ini( שים לב שבפצת חלוקה כלשהי תהיה ספריית /etc/php.d/ עם מספר קבצי. ini, אחד עבור. מודול זה
תגובה מתוך כל הקווים loadmodule עם מודולים אלה:
- ODBC
- SNMP
- PDO
- ODBC PDO
- mysqli
- IonCube-מטעין
- JSON
- IMAP
- LDAP
- ncurses
Todo:. להוסיף מידע נוסף כאן
PHP oPCODE Cache
ישהם מספר של מטמון opcode שאתה יכול להשתמש, כולל APC, eAccelerator, ו Xcache, האחרון להיות העדפה אישית שלי עקב יציבות.
הורד xcache ולחלץ אותו לתוך ספרייה, ולאחר מכן להפעיל את הפקודות הבאות ממקור xcacheDirectory:
phpize. /configure --enable-xcache הפוך את ההתקנהלפתוח את הקובץ php.ini שלךהוסף סעיף חדש עבור xcache.יהיה עליך להתאים את הנתיבים אם מודולי ה- PHP שלך נטענים ממקום אחר.
vi /etc/ php.iniהוסף את הקטע הבא לקובץ:
[xcache-common] zend_extension = /usr/lib/php/modules/ xcache.so [xcache.admin] xcache.admin.user = "myusername" xcache.admin.pass = "putanmd5hashhere"[xcache];שינוי xcache.size כדי לכוונן את גודל המטמון opcode xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0;שינוי xcache.var_size כדי לשנות את הגודל של מטמון משתנה xcache.var_size = 1M xcache.var_count = 1 xcache.var_slots = 8K xcache.var_ttl = 0 xcache.var_maxttl = 0 xcache.var_gc_interval = 300 xcache.test = Off xcache.readonly_protection =On xcache.mmap_path = "/tmp/ xcache" xcache.coredump_directory = "" xcache.cacher = ב xcache.stat = ב xcache.optimizer = כבויTodo: צריך להרחיב את זה קצת ולקשר xcache בהפניות.
גיבויים
יש מעט מאוד חשוב מאשר צורך גיבויים אוטומטיים של האתר שלך.ייתכן שתוכל לקבל גיבויים תצלום של ספק האירוח שלך, אשר גם מאוד שימושי, אבל אני מעדיף יש גיבויים אוטומטיים גם כן.צור סקריפט גיבוי אוטומטי
אני בדרך כלל להתחיל על ידי יצירת ספריות / גיבויים, עם ספריית קבצים /backups/ מתחתיו.תוכל לשנות נתיבים אלה אם תרצה.
mkdir-p /backups/ קבציםעכשיו ליצור script.shash script בתוך ספריית הגיבויים:
vi /backups/ backup.shהוסף את הקבצים הבאים לקובץ, להתאים את הנתיבים ואת הסיסמה mysqldump לפי הצורך:
#!/bin/ sh THEDATE = 'תאריך +% d% m% y% H% M` mysqldump -uadmin -pPASSWORD DATABASENAME & gt;/backups/files/ dbbackup $ $ THEDATE.bak tar-cf /backups/files/ sitebackup $ THEDATE.tar /var/www/vhosts/ אתר האינטרנט שלי / נתיב / httpdocs gzip /backups/files/ sitebackup $ THEDATE.tar למצוא באתר /backups/files/ * -mtime +5-rec rm{ };מצא את /backups/files/ db * -mtime +5 -exec rm{ } \;התסריט יהיה הראשון ליצור משתנה תאריך אז כל הקבצים יהיה שם זהה עבור גיבוי יחיד, ואז משליך את מסד הנתונים, tars את קבצי האינטרנט gzips אותם.פקודות החיפוש משמשות להסרת קבצים שגילם עולה על 5 ימים, מכיוון שאינך רוצה שהכונן שלך יאזל.
הפעל את הסקריפט על-ידי הפעלת הפקודה הבאה:
chmod u + x /backups/ backup.shהבא יהיה עליך להקצות אותו להפעלה אוטומטית על-ידי cron.ודא שאתה משתמש בחשבון שיש לו גישה לספריית הגיבויים.
crontab -eהוסף את השורה הבאה ל- crontab:
1 1 * * * /backups/ backup.shניתן לבדוק את התסריט מראש על ידי הפעלתו בעת כניסה לחשבון המשתמש.(אני בדרך כלל להפעיל את הגיבויים כשורש)
גיבויים סינכרון מחוץ לאתר עם Rsync
עכשיו שיש לך גיבויים אוטומטיים של השרת פועל, אתה יכול לסנכרן אותם במקום אחר באמצעות כלי השירות rsync.אתה רוצה לקרוא את המאמר הזה על אופן ההתקנה של מפתחות ssh עבור כניסה אוטומטית: הוסף ציבורי SSH מפתח שרת מרוחק בפקודה אחת
אתה יכול לבדוק את זה על ידי הפעלת פקודה זו על לינוקס או Mac במחשב במיקום אחר( אנייש לינוקס בבית, שבו אני מפעיל את זה)
[email protected]: /backups/files/ * /offsitebackups/זה ייקח קצת זמן לרוץ בפעם הראשונה, אבל בסוף המחשב המקומי שלך צריך עותקשל ספריית הקבצים בספריה /offsitebackups/.(הקפד ליצור את הספרייה לפני הפעלת הסקריפט)
ניתן לתזמן את זה על ידי הוספת אותו לקו crontab:
crontab -eהוסף את השורה הבאה, אשר יפעיל rsync כל שעה על הסימן 45 דקות.אתה שם לב שאנחנו משתמשים הנתיב המלא rsync כאן.
45 * * * * /usr/bin/ [email protected]: /backups/files/ * /offsitebackups/ניתן לתזמן אותו לפעול בזמן אחר, או פעם אחת בלבד ביום.זה באמת תלוי בך.
שים לב כי יש הרבה כלי עזר שיאפשר לך לסנכרן באמצעות ssh או ftp.אתה לא צריך להשתמש rsync.
אבטחה
הדבר הראשון שאתה רוצה לעשות הוא לוודא שיש לך חשבון משתמש רגיל להשתמש באמצעות ssh, ולוודא כי אתה יכול להשתמש su כדי לעבור לשורש.זה רעיון רע מאוד לאפשר כניסה ישירה עבור שורש מעל ssh.
השבת את הכניסה למערכת על SSH
ערוך את הקובץ sshd_config /etc/ssh/ וחפש את השורה הבאה:
#PermitRootLogin כןשנה את השורה כך:
PermitRootLoginודא שיש לך חשבון משתמש רגיל ויכולשורש לפני שתבצע את השינוי הזה, אחרת אתה יכול לנעול את עצמך.
השבת SSH גירסה 1
אין שום סיבה להשתמש בכל דבר אחר מלבד SSH גרסה 2, שכן הוא בטוח יותר מאשר גירסאות קודמות.ערוך את הקובץ sshd_config /etc/ssh/ וחפש את הקטע הבא:
#Protocol 2,1 פרוטוקול 2ודא שאתה משתמש בפרוטוקול 2 בלבד כפי שמוצג.
הפעל מחדש את שרת SSH
כעת יהיה עליך להפעיל מחדש את שרת SSH כדי להפוך את זה לתוקף.
/etc/init.d/ sshd הפעל מחדשבדוק אם יש יציאות פתוחות
באפשרותך להשתמש בפקודה הבאה כדי לראות אילו יציאות השרת מאזין:
netstat -an |grep להקשיבאתה באמת לא צריך שום דבר להקשיב מלבד יציאות 22, 80, ואולי 8443 עבור plesk.
הגדרת חומת האש
מאמר ראשי: שימוש ב- Iptables ב- Linux
ניתן להגדיר אופציונלית חומת אש iptables כדי לחסום חיבורים נוספים.למשל, אני בדרך כלל חוסם גישה ליציאות אחרות מלבד מרשת העבודה שלי.אם יש לך כתובת IP דינמית, מומלץ להימנע מאפשרות זו.
אם כבר ביצעת את כל השלבים במדריך זה עד כה, סביר להניח שאין צורך להוסיף חומת אש לתמהיל, אך מומלץ להבין את האפשרויות שלך.
ראה גם
- שימוש ב- Iptables ב- Linux
הפניות
- מיטוב שרת ה- DV שלך( mediatemple.net)
- XCache