דף הבית » איך ל » Tweaking ייעודי שרת אינטרנט וירטואלי

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

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

    תוכן

    [להתחבא]

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

    סקירה כללית

    יש מספר תחומים בעייתיים שבהם אנו רוצים למקסם את הביצועים:

    • תצורת לינוקס
      יש בדרך כלל שירותים הפועלים כי לא צריך להיות, בזבוז זיכרון שיכול לשמש עבור קשרים נוספים.
    • תצורת MySQL
      לעתים קרובות את הגדרות ברירת המחדל מבוססים על שרת קטן, אנחנו יכולים להוסיף כמה שינויים מרכזיים כדי להגדיל את הביצועים הרבה.
    • תצורת אפאצ 'י
      כברירת מחדל רוב ספקי אירוח להתקין Apache עם כמעט כל מודול מותקן. אין סיבה לטעון מודולים אם אתה לא הולך להשתמש בהם.
    • תצורת PHP
      ברירת המחדל של תצורת PHP נפוחה באופן דומה, יש בדרך כלל טון של מודולים מיותרים נוספים מותקן.
    • מטמון PHP קוד פתוח
      במקום לאפשר PHP להרכיב מחדש את הסקריפטים בכל פעם, מטמון opcode יהיה מטמון את הסקריפטים הידור בזיכרון עבור מגביר את הביצועים הגדולים.
    • גיבויים
      צריך כנראה ההתקנה כמה גיבויים אוטומטיים, שכן ספק האירוח שלך הוא לא הולך לעשות את זה בשבילך.
    • אבטחה
      בטח, לינוקס הוא מאובטח מספיק כברירת מחדל, אבל יש בדרך כלל כמה בעיות אבטחה בולט שאתה יכול לתקן עם כמה הגדרות מהירות.

    לינוקס תצורה

    יש לא מעט tweaks אתה יכול לעשות, אשר ישתנה מעט על בסיס השרת אתה משתמש. אלה tweaks הם עבור שרת פועל CentOS, אבל הם צריכים לעבוד עבור רוב שרתי DV.

    השבת DNS

    אם ספק האירוח שלך מטפל ב- DNS עבור התחום שלך (סביר), תוכל לבטל את הפעלת שירות ה- DNS.

    disable dns /etc/init.d/named stop chmod 644 /etc/init.d/named

    הפקודה chmod מסירה את ההרשאה לביצוע מהתסריט, ומפסיקה את פעולתה מהפעלה.

    השבת SpamAssassain

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

    /etc/init.d/psa-spamassin לעצור chmod 644 /etc/init.d/psa-spamassassin

    השבת Xinetd

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

    /etc/init.d/xinetd stop chmod 644 /etc/init.d/xinetd

    להגביל את השימוש זיכרון Plesk

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

    vi /usr/local/psa/admin/conf/httpsd.custom.include

    הוסף את השורות הבאות לקובץ:

    1 MaxSpareServers 1 StartServers 1 MaxClients 5

    שים לב כי אפשרות זו ידועה לעבוד על שרתי DVT MediaTemple, אבל לא נבדק על אחרים. (ראה הפניות)

    השבת או השבת את Plesk (אופציונלי)

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

    הפעל את הפקודה הבאה כדי לכבות את הפלאסק:

    /etc/init.d/psa להפסיק

    באפשרותך להשבית את פעולתו בעת ההפעלה בעת הפעלת הפקודה הבאה:

    chmod 644 /etc/init.d/psa

    שים לב שאם תשבית אותו, לא תוכל להפעיל אותו באופן ידני מבלי לשנות את הרשאות הקובץ בחזרה (chmod u + x).

    תצורת MySQL

    אפשר מטמון שאילתה

    פתח את הקובץ /etc/my.cnf והוסף את השורות הבאות בקטע [mysqld] שלך כך:

    [mysqld] שאילתת מטמון-סוג = 1 שאילתת מטמון-גודל = 8M

    תוכל להוסיף זיכרון נוסף למטמון השאילתה אם תרצה, אך אל תשתמש יותר מדי.

    השבת TCP / IP

    מספר מפתיע של המארחים לאפשר גישה MySQL על TCP / IP כברירת מחדל, אשר לא הגיוני עבור אתר אינטרנט. אתה יכול להבין אם MySQL מקשיב על TCP / IP על ידי הפעלת הפקודה הבאה:

    netstat -an grep 3306

    כדי להשבית, הוסף את השורה הבאה לקובץ /etc/my.cnf שלך:

    לדלג על הרשתות

    תצורת Apache

    פתח את הקובץ httpd.conf שלך, שנמצא לעתים קרובות ב- /etc/httpd/conf/httpd.conf

    מצא את הקו שנראה כך:

    פסק זמן 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-loader
    • ג'סון
    • imap
    • ldap
    • נרות

    Todo: הוסף כאן מידע נוסף.

    מטמון PHP קוד פתוח

    ישנם מספר מטמוני opcode שניתן להשתמש בהם, כולל APC, eAccelerator ו- Xcache, והאחרונה היא העדפה אישית שלי עקב יציבות.

    הורד xcache וחלץ אותו לספרייה, ולאחר מכן הפעל את הפקודות הבאות מספריית המקור xcache:

    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 = on xcache.stat = on xcache.optimizer = Off

    Todo: צריך להרחיב את זה קצת ולקשר xcache בהפניות.

    גיבויים

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

    יצירת סקריפט גיבוי אוטומטי

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

    mkdir -p / backups / files

    עכשיו ליצור script.sh script בתוך ספריית הגיבויים:

    vi /backups/backup.sh

    הוסף את הקבצים הבאים לקובץ, תוך התאמה לנתיבים ולסיסמת mysqldump לפי הצורך:

    #! / bin / sh THEDATE = "תאריך +% d% m% y% H%" 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 חיפוש / גיבויים / קבצים / site * -mtime +5-rec rm ; מצא / גיבויים / קבצים / db * -mtime +5-rec 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

    לערוך את / etc / ssh / sshd_config הקובץ, ולחפש את השורה הבאה:

    #PermitRootLogin כן

    שנה את השורה כך:

    הרשאה לא

    ודא שיש לך חשבון משתמש רגיל יכול su כדי שורש לפני שתבצע את השינוי הזה, אחרת אתה יכול לנעול את עצמך.

    השבת SSH גירסה 1

    אין באמת סיבה להשתמש בכל דבר אחר מאשר גרסה SSH 2, כפי שהוא בטוח יותר מאשר בגירסאות קודמות. ערוך את הקובץ / etc / ssh / sshd_config, וחפש את הקטע הבא:

    #Protocol 2,1 פרוטוקול 2

    ודא שאתה משתמש בפרוטוקול 2 בלבד כפי שמוצג.

    הפעל מחדש את שרת SSH

    עכשיו תצטרך להפעיל מחדש את שרת SSH כדי להפוך את זה לתוקף.

    /etc/init.d/sshd הפעלה מחדש

    בדוק אם יש יציאות פתוחות

    באפשרותך להשתמש בפקודה הבאה כדי לראות אילו יציאות השרת מאזין:

    netstat -an grep מקשיב

    אתה באמת לא צריך שום דבר להקשיב מלבד יציאות 22, 80, ואולי 8443 עבור plesk.

    הגדרת חומת אש

    מאמר מרכזי: באמצעות Iptables על לינוקס

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

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

    ראה גם

    • באמצעות Iptables על לינוקס

    הפניות

    • אופטימיזציה של שרת DV שלך (mediatemple.net)
    • XCache