If-Koubou

Изчистване на специален виртуален уеб сървър

Изчистване на специален виртуален уеб сървър (Как да)

Когато получите специален виртуален сървър, за да стартирате уебсайта си, шансовете са добри, че той е конфигуриран за всички и не е персонализиран, за да увеличи максимално ефективността за стартиране на уебсайт.

съдържание

[Крия]

  • 1 Преглед
  • 2 Конфигурация на Linux
    • 2.1 Деактивиране на DNS
    • 2.2 Деактивирайте SpamAssassain
    • 2.3 Изключване на xinetd
    • 2.4 Лимитиране на използването на паметта
    • 2.5 Изключване или изключване на плесен (по избор)
  • 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 Сигурност
    • 7.1 Изключване на коренното влизане през SSH
    • 7.2 Деактивиране на SSH Версия 1
    • 7.3 Рестартирайте SSH сървъра
    • 7.4 Проверка за отворени портове
    • 7.5 Настройка на защитна стена
  • 8 Вижте също
  • 9 Позовавания

Преглед

Има редица проблемни области, в които искаме да увеличим максимално ефективността:

  • Linux конфигурация
    Обикновено се изпълняват услуги, които не трябва да бъдат, губи памет, която може да се използва за повече връзки.
  • MySQL конфигурация
    Често настройките по подразбиране се базират на малък сървър, можем да добавим няколко ключови промени, за да увеличим ефективността много.
  • Apache конфигурация
    По подразбиране повечето хостинг доставчици инсталират Apache с почти всеки инсталиран модул. Няма причина да заредите модули, ако изобщо няма да ги използвате.
  • PHP конфигурация
    По подразбиране PHP конфигурацията е подобно подуто, обикновено има тон ненужни допълнителни модули инсталирани.
  • PHP Opcode кеш
    Вместо да позволява на PHP да прекомпилира сценариите всеки път, кешът за опкод ще кешира компилираните скриптове в паметта, за да увеличи производителността.
  • Архивите
    Вероятно трябва да настроите автоматизирани резервни копия, тъй като вашият хостинг доставчик няма да го направи за вас.
  • Сигурност
    Разбира се, Linux е достатъчно сигурен по подразбиране, но обикновено има някои очевидни проблеми със сигурността, които можете да коригирате с няколко бързи настройки.

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 спиране на 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).

Конфигуриране на MySQL

Активиране на кеша за заявки

Отворете файла /etc/my.cnf и добавете следните редове в секцията [mysqld] по следния начин:

[mysqld] заявка-кеш-тип = 1 заявка-кеш-размер = 8М

Можете да добавите още памет към кеша за заявки, ако искате, но не използвайте прекалено много.

Деактивиране на TCP / IP

Изненадващ брой хостове позволяват по подразбиране достъп до MySQL на TCP / IP, което няма смисъл за уебсайт. Можете да разберете дали mysql слуша в TCP / IP, като стартирате следната команда:

netstat -an | grep 3306

За да деактивирате, добавете следния ред към файла /etc/my.cnf:

пропуснете-мрежи

Apache конфигурация

Отворете файла httpd.conf, който често се намира в /etc/httpd/conf/httpd.conf

Намерете реда, който изглежда така:

Timeout 120

И променете това:

Timeout 20

Сега намерете секцията, която включва тези редове и се приспособи към нещо подобно:

Старт сървъри 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000

PHP конфигурация

Едно от нещата, които трябва да имате предвид, когато променяте сървър на PHP платформата е, че всяка apache нишка ще зареди PHP в отделно място в паметта. Това означава, че ако един неизползван модул добави 256k памет към PHP, в 40 апаша нишки губите 10MB памет.

Премахване на ненужните PHP модули

Трябва да намерите файла php.ini, който обикновено се намира в /etc/php.ini (Имайте предвид, че на някои дистрибуции ще има директория /etc/php.d/ с няколко .ini файла, един за всеки модул.

Коментирайте всички loadmodule линии с тези модули:

  • ODBC
  • SNMP
  • ЗНП
  • Отбр
  • MySQLi
  • ioncube-товарач
  • JSON
  • IMAP
  • LDAP
  • ncurses

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, за да настроите размера на кеша на опковете 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

Сега, когато имате автоматизирани резервни копия на вашия сървър, можете да ги синхронизирате някъде другаде, като използвате помощната програма 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.

Деактивиране на коренното влизане през SSH

Редактирайте файла / etc / ssh / sshd_config и потърсете следния ред:

#PermitRootLogin да

Променете този ред, така че да изглежда така:

PermitRootLogin не

Уверете се, че имате обикновен потребителски акаунт и можете да го root, преди да направите тази промяна, в противен случай може да се заключите.

Деактивирайте SSH Версия 1

Наистина няма причина да се използва нещо друго освен SSH версия 2, тъй като е по-сигурно от предишните версии. Редактирайте файла / etc / ssh / sshd_config и потърсете следната секция:

#Протокол 2,1 Протокол 2

Уверете се, че използвате само Протокол 2, както е показано.

Рестартирайте SSH сървъра

Сега ще трябва да рестартирате SSH сървъра, за да стане това действие в сила.

/etc/init.d/sshd рестартиране

Проверете за отворени портове

Можете да използвате следната команда, за да видите кои пристанища сървърът слуша:

netstat -an | grep LISTEN

Наистина не трябва да имате каквото и да било слушане, освен пристанища 22, 80 и вероятно 8443 за пляскане.

Настройка на защитна стена

Основен член:Използване на Iptables на Linux

По желание можете да настроите защитна стена на iptables, за да блокирате повече връзки. Например, обикновено блокирам достъпа до други портове, различни от моята работна мрежа. Ако имате динамичен IP адрес, вие ще искате да избегнете тази опция.

Ако вече сте изпълнили всички стъпки в това ръководство досега, вероятно не е необходимо да добавяте защитна стена към сместа, но е добре да разберете вашите опции.

Вижте също

  • Използване на Iptables на Linux

Препратки

  • Оптимизиране на вашия DV сървър (mediatemple.net)
  • XCache