Когато получите специален виртуален сървър, за да стартирате уебсайта си, шансовете са добри, че той е конфигуриран за всички и не е персонализиран, за да увеличи максимално ефективността за стартиране на уебсайт.
съдържание[Крия]
|
Има редица проблемни области, в които искаме да увеличим максимално ефективността:
Има доста ощипвания, които можете да направите, които ще се различават леко на базата на сървъра, който използвате. Тези ощипвания са за сървър, изпълняващ CentOS, но те трябва да работят за по-голямата част от DV сървърите.
Ако вашият хостинг доставчик обработва DNS за вашият домейн (вероятно), тогава можете да деактивирате услугата DNS да се изпълнява.
деактивиране на dns /etc/init.d/named stop chmod 644 /etc/init.d/named
Командата chmod премахва разрешението за изпълнение от скрипта и го спира да работи при стартиране.
Ако не използвате имейл акаунти на самия сървър, не трябва да се притеснявате да работите с антиспам инструменти. (Също така трябва да проверите Google Apps, много по-добро решение за електронна поща)
/etc/init.d/psa-spamassassin stop chmod 644 /etc/init.d/psa-spamassassin
Процесът xinetd съдържа редица други процеси, никой от които не е полезен за типичен уеб сървър.
/etc/init.d/xinetd спиране на chmod 644 /etc/init.d/xinetd
Ако използвате плесенския панел, можете да го принудите да използва по-малко памет, като добавите файл с опции.
vi /usr/local/psa/admin/conf/httpsd.custom.include
Добавете следните линии към файла:
MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5
Имайте предвид, че тази опция е известна, че работи на сървъри MediaTemple DV, но не е била проверена на други. (Виж референциите)
Ако използвате Plesk само веднъж годишно, няма много причини да го оставяте да работи изобщо. Обърнете внимание, че тази стъпка е напълно по желание и малко по-напреднала.
Изпълнете следната команда, за да изключите плешката:
/etc/init.d/psa stop
Можете да я деактивирате при стартиране, като изпълните следната команда:
chmod 644 /etc/init.d/psa
Имайте предвид, че ако го деактивирате, не можете да го стартирате ръчно, без да променяте разрешенията за файла обратно (chmod u + x).
Отворете файла /etc/my.cnf и добавете следните редове в секцията [mysqld] по следния начин:
[mysqld] заявка-кеш-тип = 1 заявка-кеш-размер = 8М
Можете да добавите още памет към кеша за заявки, ако искате, но не използвайте прекалено много.
Изненадващ брой хостове позволяват по подразбиране достъп до MySQL на TCP / IP, което няма смисъл за уебсайт. Можете да разберете дали mysql слуша в TCP / IP, като стартирате следната команда:
netstat -an | grep 3306
За да деактивирате, добавете следния ред към файла /etc/my.cnf:
пропуснете-мрежи
Отворете файла httpd.conf, който често се намира в /etc/httpd/conf/httpd.conf
Намерете реда, който изглежда така:
Timeout 120
И променете това:
Timeout 20
Сега намерете секцията, която включва тези редове и се приспособи към нещо подобно:
Старт сървъри 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000
Едно от нещата, които трябва да имате предвид, когато променяте сървър на PHP платформата е, че всяка apache нишка ще зареди PHP в отделно място в паметта. Това означава, че ако един неизползван модул добави 256k памет към PHP, в 40 апаша нишки губите 10MB памет.
Трябва да намерите файла php.ini, който обикновено се намира в /etc/php.ini (Имайте предвид, че на някои дистрибуции ще има директория /etc/php.d/ с няколко .ini файла, един за всеки модул.
Коментирайте всички loadmodule линии с тези модули:
Todo: Добавете още информация тук.
Съществуват няколко кеша с опкода, които можете да използвате, включително 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 = Vypnuté xcache.readonly_protection = На xcache.mmap_path = "/ tmp / xcache" xcache.coredump_directory = "" xcache.cacher = Включено xcache.stat = Включено xcache.optimizer = Изключено
Todo: Трябва да разширите това малко и да препратите към xcache в препратките.
Има много малко по-важно от това да имате автоматизирани резервни копия на уебсайта си. Възможно е да можете да получите резервни копия от вашия хостинг доставчик, които също са много полезни, но предпочитам да има и автоматични резервни копия.
Обикновено започвам с създаването на директория / backup, с директория / backups / files под нея. Можете да коригирате тези пътища, ако искате.
mkdir -p / архиви / файлове
Сега създайте скрипт backup.sh в директорията за архивиране:
vi /backups/backup.sh
Добавете следното към файла, като коригирате пътищата и mysqldump паролата, ако е необходимо:
#! / bin / sh THEDATE = "дата +% d% m% y% H% M" mysqldump -uadmin -password DATABASENAME> /backups/files/dbbackup$THEDATE.bak tar -cf / архиви / файлове / sitebackup $ THEDATE .tar / var / www / vhosts / my-website-path / httpdocs gzip /backups/files/sitebackup$THEDATE.tar намерете / архиви / файлове / сайт * -mtime +5 -exec rm \; намерете / архиви / файлове / db * -mtime +5 -exec rm \;
Първоначалният скрипт ще създаде променлива за дата, така че всички файлове ще бъдат наименувани за едно и също резервно копие, след това ще изхвърлят базата от данни, ще разкопаят уеб файловете и ще ги образуват. Командите за намиране се използват за премахване на всички файлове, по-стари от 5 дни, тъй като не искате устройството ви да изчерпва пространство.
Направете скрипта изпълним, като изпълните следната команда:
chmod u + x /backups/backup.sh
След това ще трябва да го зададете, за да се стартира автоматично от cron. Уверете се, че използвате профил, който има достъп до директорията с архиви.
crontab -e
Добавете следния ред към crontab:
1 1 * * * /backups/backup.sh
Можете да тествате скрипта преди време, като го стартирате, докато сте влезли в потребителския акаунт. (Обикновено пускам архивите като root)
Сега, когато имате автоматизирани резервни копия на вашия сървър, можете да ги синхронизирате някъде другаде, като използвате помощната програма rsync. Вие ще искате да прочетете тази статия за това как да настроите ssh ключове за автоматично влизане: Добавяне на публичен ключ SSH към отдалечен сървър в едно командване
Можете да изпробвате това, като стартирате тази команда на Linux или Mac машина на друго място (имам Linux сървър у дома, където се стартира това)
rsync -a [email protected]: / архиви / файлове / * / offsitebackups /
Това ще отнеме известно време, за да се стартира за първи път, но в крайна сметка локалният ви компютър трябва да има копие на директорията за файлове в директорията / offsitebackups /. (Уверете се, че сте създали тази директория преди да стартирате скрипта)
Можете да насрочите това, като го добавите към линия crontab:
crontab -e
Добавете следния ред, който ще се изпълнява rsync всеки час в рамките на 45 минути. Ще забележите, че тук използваме пълния път към rsync.
45 * * * * / usr / bin / rsync -a [email protected]: / архиви / файлове / * / offsitebackups /
Можете да го планирате да се изпълнява в различно време или само веднъж на ден. Това зависи от вас.
Имайте предвид, че има много помощни програми, които ви позволяват да синхронизирате чрез ssh или ftp. Не е нужно да използвате rsync.
Първото нещо, което искате да направите, е да сте сигурни, че имате редовен потребителски акаунт, който да използвате чрез ssh, и се уверете, че можете да използвате su, за да преминете към root. Много лоша идея е да позволите директно вход за корен над ssh.
Редактирайте файла / etc / ssh / sshd_config и потърсете следния ред:
#PermitRootLogin да
Променете този ред, така че да изглежда така:
PermitRootLogin не
Уверете се, че имате обикновен потребителски акаунт и можете да го root, преди да направите тази промяна, в противен случай може да се заключите.
Наистина няма причина да се използва нещо друго освен SSH версия 2, тъй като е по-сигурно от предишните версии. Редактирайте файла / etc / ssh / sshd_config и потърсете следната секция:
#Протокол 2,1 Протокол 2
Уверете се, че използвате само Протокол 2, както е показано.
Сега ще трябва да рестартирате SSH сървъра, за да стане това действие в сила.
/etc/init.d/sshd рестартиране
Можете да използвате следната команда, за да видите кои пристанища сървърът слуша:
netstat -an | grep LISTEN
Наистина не трябва да имате каквото и да било слушане, освен пристанища 22, 80 и вероятно 8443 за пляскане.
Основен член:Използване на Iptables на Linux
По желание можете да настроите защитна стена на iptables, за да блокирате повече връзки. Например, обикновено блокирам достъпа до други портове, различни от моята работна мрежа. Ако имате динамичен IP адрес, вие ще искате да избегнете тази опция.
Ако вече сте изпълнили всички стъпки в това ръководство досега, вероятно не е необходимо да добавяте защитна стена към сместа, но е добре да разберете вашите опции.