الصفحة الرئيسية » howto » التغيير والتبديل في خادم الويب الظاهري مخصص

    التغيير والتبديل في خادم الويب الظاهري مخصص

    عندما تحصل على خادم ظاهري مخصص لتشغيل موقع الويب الخاص بك ، تكون هناك احتمالات جيدة أنه قد تم تهيئته للجميع ، ولم يتم تخصيصه لتحقيق أقصى قدر من الأداء لتشغيل موقع ويب.

    محتويات

    [إخفاء]

    • 1 نظرة عامة
    • 2 تكوين لينكس
      • 2.1 تعطيل DNS
      • 2.2 تعطيل SpamAssassain
      • 2.3 تعطيل xinetd
      • 2.4 الحد من استخدام ذاكرة Plesk
      • 2.5 تعطيل أو إيقاف تشغيل Plesk (اختياري)
    • 3 تكوين الخلية
      • 3.1 تمكين Query Cache
      • 3.2 تعطيل TCP / IP
    • 4 تكوين أباتشي
    • 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
      • 7.4 تحقق من وجود منافذ مفتوحة
      • 7.5 إعداد جدار حماية
    • 8 انظر أيضا
    • 9 المراجع

    نظرة عامة

    هناك عدد من المجالات التي نحتاج فيها إلى تحسين الأداء:

    • تكوين لينكس
      عادة ما تكون هناك خدمات تشغيل لا تحتاج إلى ذلك ، مما يؤدي إلى إهدار الذاكرة التي يمكن استخدامها لمزيد من الاتصالات.
    • تكوين الخلية
      غالبًا ما تستند الإعدادات الافتراضية إلى خادم صغير ، يمكننا إضافة بعض التغييرات الأساسية لزيادة الأداء بشكل كبير.
    • تكوين اباتشي
      بشكل افتراضي ، يقوم معظم موفري الاستضافة بتركيب Apache مع كل وحدة تقريبًا مثبتة. ليس هناك سبب لتحميل الوحدات إذا لم تكن ستستخدمها أبدًا.
    • تكوين PHP
      كما أن تكوين PHP الافتراضي منتفخ بشكل متشابه ، وعادة ما يكون هناك الكثير من الوحدات الإضافية غير الضرورية المثبتة.
    • PHP Opcode Cache
      بدلاً من السماح لـ PHP بإعادة ترجمة النصوص البرمجية في كل مرة ، فإن ذاكرة التخزين المؤقت في ذاكرة التخزين المؤقت سوف تقوم بتخزين البرامج النصية المجمعة في الذاكرة للحصول على تحسينات هائلة في الأداء..
    • النسخ الاحتياطي
      ربما ينبغي إعداد بعض النسخ الاحتياطية الآلية ، بما أن مقدم خدمة الاستضافة لن يقوم بذلك نيابة عنك.
    • الأمان
      بالتأكيد ، يكون نظام التشغيل Linux آمنًا بشكل كافٍ افتراضيًا ، ولكن عادةً ما تكون هناك بعض المشكلات الأمنية الواضحة التي يمكنك إصلاحها باستخدام بعض الإعدادات السريعة.

    تكوين لينكس

    هناك عدد كبير من التعديلات التي يمكنك القيام بها ، والتي تختلف قليلاً بناءً على الخادم الذي تستخدمه. هذه التعديلات هي لخادم يعمل بنظام CentOS ، ولكن يجب أن تعمل مع معظم خوادم DV.

    تعطيل DNS

    إذا كان مزود خدمة الاستضافة يتعامل مع DNS لنطاقك (على الأرجح) ، فيمكنك تعطيل خدمة DNS من التشغيل.

    تعطيل dns /etc/init.d/named stop chmod 644 /etc/init.d/named

    يقوم الأمر chmod بإزالة إذن التنفيذ من البرنامج النصي ، وإيقاف تشغيله عند بدء التشغيل.

    تعطيل SpamAssassain

    إذا كنت لا تستخدم حسابات البريد الإلكتروني على خادمك نفسه ، فلا ينبغي أن تزعج نفسك بتشغيل أدوات مكافحة البريد العشوائي. (يجب أيضًا التحقق من Google Apps ، وهو حل بريد إلكتروني أفضل كثيرًا)

    /etc/init.d/psa-spamassassin stop chmod 644 /etc/init.d/psa-spamassassin

    تعطيل xinetd

    تحتوي عملية xinetd على عدد من العمليات الأخرى ، لا يعد أي منها مفيدًا لخادم ويب نموذجي.

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

    الحد من استخدام ذاكرة Plesk

    إذا كنت تستخدم لوحة plesk ، فيمكنك إجبارها على استخدام ذاكرة أقل عن طريق إضافة ملف الخيارات.

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

    أضف الأسطر التالية إلى الملف:

    MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5

    لاحظ أن هذا الخيار معروف للعمل على خوادم MediaTemple DV ، ولكن لم يتم التحقق منه على أي جهاز آخر. (انظر المراجع)

    تعطيل أو إيقاف تشغيل Plesk (اختياري)

    إذا كنت تستخدم Plesk فقط مرة واحدة في السنة ، فليس هناك سبب كبير لتركه يعمل على الإطلاق. لاحظ أن هذه الخطوة اختيارية تمامًا ، وأكثر تقدمًا قليلاً.

    قم بتشغيل الأمر التالي لإيقاف plesk:

    /etc/init.d/psa

    يمكنك تعطيله من التشغيل عند بدء التشغيل عن طريق تشغيل الأمر التالي:

    chmod 644 /etc/init.d/psa

    لاحظ أنه في حالة تعطيلها ، فلا يمكنك بدء تشغيلها يدويًا دون تغيير أذونات الملفات (chmod u + x).

    تكوين الخلية

    تمكين Query Cache

    افتح ملف /etc/my.cnf الخاص بك وأضف الأسطر التالية في قسم [mysqld] كما يلي:

    [mysqld] query-cache-type = 1 query-cache-size = 8M

    يمكنك إضافة المزيد من الذاكرة إلى ذاكرة التخزين المؤقت للاستعلام إذا كنت ترغب في ذلك ، ولكن لا تستخدم الكثير.

    تعطيل TCP / IP

    يسمح عدد مفاجئ من المضيفين بالوصول إلى MySQL على TCP / IP بشكل افتراضي ، مما لا معنى له لموقع ويب. يمكنك معرفة ما إذا كان mysql يستمع على TCP / IP عن طريق تشغيل الأمر التالي:

    netstat -an | grep 3306

    للتعطيل ، أضف السطر التالي إلى ملف /etc/my.cnf:

    تخطي الشبكات

    تكوين اباتشي

    افتح ملف httpd.conf ، غالبًا ما يكون موجودًا في /etc/httpd/conf/httpd.conf

    ابحث عن السطر الذي يشبه هذا:

    المهلة 120

    وتغييره إلى هذا:

    المهلة 20

    الآن اعثر على القسم الذي يتضمن هذه السطور ، واضبطه على شيء مشابه:

    StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000

    تكوين PHP

    أحد الأمور التي يجب مراعاتها عند تعديل خادم على النظام الأساسي PHP هو أن كل مؤشر ترابط apache سيتم تحميل PHP في موقع منفصل في الذاكرة. هذا يعني إذا كانت وحدة غير مستخدمة تضيف 256 ألف من الذاكرة إلى PHP ، عبر 40 سلسلة من سلاسل apache ، فأنت تهدر 10 ميغابايت من الذاكرة.

    إزالة وحدات PHP غير الضرورية

    ستحتاج إلى تحديد ملف php.ini الخاص بك ، والذي عادة ما يتم العثور عليه في /etc/php.ini (لاحظ أنه في بعض التوزيعات ، سيكون هناك مجلد /etc/php.d/ مع عدد من ملفات .ini ، واحد لكل وحدة.

    التعليق على أي خطوط loadmodule مع هذه الوحدات:

    • دبك
    • تجميعيه
    • شركة تنمية نفط عمان
    • odbc pdo
    • mysqli
    • يونكوبي محمل
    • سلمان
    • IMAP
    • LDAP
    • سأركع

    تودو: إضافة المزيد من المعلومات هنا.

    PHP Opcode Cache

    هناك عدد من مخابئ شفرة التشغيل التي يمكنك استخدامها ، بما في ذلك 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 لضبط حجم ذاكرة التخزين المؤقت للعمود 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 = إيقاف xcache.readonly_protection = على xcache.mmap_path = "/ tmp / xcache" xcache.coredump_directory = "" xcache.cacher = على xcache.stat = على xcache.optimizer = Off

    تودو: تحتاج إلى توسيع هذا قليلاً وربط xcache في المراجع.

    النسخ الاحتياطي

    هناك أهمية أكبر من وجود نسخ احتياطية تلقائية لموقعك على الويب. قد تكون قادرًا على الحصول على نسخ احتياطية من مزود الاستضافة ، والتي هي أيضًا مفيدة جدًا ، لكنني أفضل أن يكون لديك نسخ احتياطية تلقائية أيضًا.

    إنشاء برنامج نصي النسخ الاحتياطي الآلي

    أبدأ عادةً بإنشاء دليل / backups ، مع دليل / backups / الملفات تحته. يمكنك ضبط هذه المسارات إذا كنت تريد.

    mkdir -p / النسخ الاحتياطي / الملفات

    الآن أنشئ نص برمجي backup.sh داخل دليل النسخ الاحتياطية:

    vi /backups/backup.sh

    أضف ما يلي إلى الملف ، واضبط المسارات وكلمة المرور mysqldump حسب الضرورة:

    #! / bin / sh THEDATE = "date +٪ 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  \؛

    سينشئ البرنامج النصي أولاً متغير تاريخ ، بحيث يتم تسمية جميع الملفات بنفس الاسم لنسخة احتياطية واحدة ، ثم يتم تفريغ قاعدة البيانات ، ورفع مستوى ملفات الويب وضغطها. تُستخدم أوامر البحث لإزالة أي ملفات أقدم من 5 أيام ، نظرًا لأنك لا ترغب في نفاد المساحة في محرك الأقراص.

    اجعل البرنامج النصي قابل للتنفيذ عن طريق تشغيل الأمر التالي:

    chmod u + x /backups/backup.sh

    القادم سوف تحتاج إلى تعيينه ليعمل تلقائيا من قبل كرون. تأكد من استخدام حساب لديه حق الوصول إلى دليل النسخ الاحتياطية.

    crontab -e

    أضف السطر التالي إلى crontab:

    1 1 * * * /backups/backup.sh

    يمكنك اختبار البرنامج النصي مسبقًا من خلال تشغيله أثناء تسجيل الدخول إلى حساب المستخدم. (عادة ما أقوم بتشغيل النسخ الاحتياطية كجذر)

    مزامنة النسخ الاحتياطية خارج الموقع مع Rsync

    الآن وبعد أن قمت بتشغيل نسخ احتياطية تلقائية من الخادم الخاص بك ، يمكنك مزامنتها في مكان آخر باستخدام الأداة المساعدة rsync. سترغب في قراءة هذه المقالة حول كيفية إعداد مفاتيح ssh لتسجيل الدخول التلقائي: إضافة مفتاح SSH عام إلى خادم بعيد في أمر مفرد

    يمكنك اختبار ذلك من خلال تشغيل هذا الأمر على جهاز Linux أو جهاز Mac في موقع آخر (لدي خادم linux في المنزل ، حيث أقوم بتشغيل هذا)

    rsync -a [email protected]: / backups / files / * / offsitebackups /

    سيستغرق هذا بعض الوقت للتشغيل في المرة الأولى ، ولكن في النهاية يجب أن يكون لدى الكمبيوتر المحلي نسخة من دليل الملفات في الدليل / offsitebackups /. (تأكد من إنشاء هذا الدليل قبل تشغيل البرنامج النصي)

    يمكنك جدولة ذلك عن طريق إضافته إلى خط crontab:

    crontab -e

    أضف السطر التالي ، الذي سيتم تشغيله rsync كل ساعة عند علامة 45 دقيقة. ستلاحظ أننا نستخدم المسار الكامل إلى rsync هنا.

    45 * * * * / usr / bin / rsync -a [email protected]: / backups / files / * / offsitebackups /

    يمكنك جدولة العمل في وقت مختلف ، أو مرة واحدة فقط في اليوم. هذا حقا متروك لك.

    لاحظ أن هناك الكثير من الأدوات المساعدة التي ستسمح لك بالمزامنة عبر ssh أو ftp. ليس عليك استخدام rsync.

    الأمان

    أول شيء تريد القيام به هو التأكد من أن لديك حساب مستخدم عادي لاستخدامه من خلال ssh ، وتأكد من أنه يمكنك استخدام su للتبديل إلى الجذر. إنها فكرة سيئة للغاية للسماح بالدخول المباشر لجذر عبر ssh.

    تعطيل دخول الجذر عبر SSH

    قم بتحرير الملف / etc / ssh / sshd_config ، وابحث عن السطر التالي:

    #PermitRootLogin نعم

    تغيير هذا الخط لتبدو هكذا:

    PermitRootLogin لا

    تأكد من أن لديك حساب مستخدم عادي ويمكن أن تؤول إلى الجذر قبل إجراء هذا التغيير ، وإلا قد تخلع نفسك.

    تعطيل SSH الإصدار 1

    لا يوجد سبب لاستخدام أي شيء آخر بخلاف الإصدار الثاني من SSH ، لأنه أكثر أمانًا من الإصدارات السابقة. قم بتحرير الملف / etc / ssh / sshd_config ، وابحث عن القسم التالي:

    بروتوكول 2،1 بروتوكول 2

    تأكد من أنك تستخدم البروتوكول 2 فقط كما هو موضح.

    أعد تشغيل خادم SSH

    الآن ستحتاج إلى إعادة تشغيل خادم SSH لجعل ذلك ساري المفعول.

    /etc/init.d/sshd إعادة التشغيل

    تحقق من فتح الموانئ

    يمكنك استخدام الأمر التالي لمعرفة المنافذ التي يستمع إليها الخادم:

    netstat -an | grep LISTEN

    لا ينبغي عليك فعلًا الاستماع لأي شيء بخلاف المنافذ 22 و 80 ومن المحتمل 8443 لـ plesk.

    إعداد جدار حماية

    المادة الرئيسية: باستخدام Iptables على لينكس

    يمكنك اختياريًا إعداد جدار حماية iptables لمنع المزيد من الاتصالات. على سبيل المثال ، عادةً ما أحظر الوصول إلى أي منافذ أخرى بخلاف شبكة العمل الخاصة بي. إذا كان لديك عنوان IP ديناميكي ، فستحتاج إلى تجنب هذا الخيار.

    إذا كنت قد اتبعت بالفعل جميع الخطوات الواردة في هذا الدليل حتى الآن ، فقد لا يكون من الضروري أيضًا إضافة جدار حماية إلى المزيج ، ولكن من الجيد أن تفهم خياراتك.

    أنظر أيضا

    • باستخدام Iptables على لينكس

    المراجع

    • تحسين خادم DV الخاص بك (mediatemple.net)
    • XCache