12Sep

Tweaking ייעודי שרת אינטרנט וירטואלי

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

  • 1 סקירה כללית
  • 2 תצורת לינוקס
    • 2.1 השבתת DNS
    • 2.2 השבתה של SpamAssassain
    • 2.3 Disable xinetd
    • 2.4 הגבלת שימוש בזיכרון Plesk
    • 2.5 השבתה או השבתה של Plesk( אופציונלי)
  • 3 MySQL Configuration
    • 3.1 הפעלת מטמון שאילתה
    • 3.2 השבתת TCP / IP
  • 4 תצורת Apache
  • 5 תצורת PHP
    • 5.1 הסרת מודולי PHP לא נחוצים
    • 5.2 PHP Opcode Cache
  • 6 גיבויים
    • 6.1 יצירת סקריפט גיבוי אוטומטי
    • 6.2 סנכרון גיבויים מחוץ לאתר עם Rsync
  • 7 אבטחה
    • 7.1 השבת שורשהתחברות באמצעות SSH
    • 7.2 השבת SSH גירסה 1
    • 7.3 הפעל מחדש את SSH Server
    • 7.4 בדוק אם יש יציאות פתוחות
    • 7.5 התקנת חומת אש
  • 8 ראה גם
  • 9 סימוכין
  • סקירה

    ישנם מספר תחומים בעייתיים שבהם אנו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