Настройка сервера Apache - залог хорошей и безопасной работы сервера.
Пройдемся по файлу конфигурации httpd.conf.
Timeout: Время в секундах, после которого сервер разрывает соединение с выдачей Timeout. Нужно уменьшить значение, помогает защитится от искусственных медленных соединений (при DDOS).
Timeout 45
Далее важнейшая настройка Apache для модуля prefork, или worker.
StartServers: количество процессов сервера после старта
MinSpareServers: минимальное количество ждущих процессов
MinSpareServers: минимальное количество ждущих процессов
MaxSpareServers: максимальное количество ждущих процессов
ServerLimit: максимальная величина MaxClients в течение всего времени работы сервера
ServerLimit: максимальная величина MaxClients в течение всего времени работы сервера
MaxClients: максимальное количество одновременно запущенных процессов сервера
MaxRequestsPerChild: максимальное количество запросов, которое может обслужить процесс, затем процесс закрывается
StartServers 8
MinSpareServers 5
MaxSpareServers 15
ServerLimit 15
MaxClients 15
MaxRequestsPerChild 4000
MinSpareServers 5
MaxSpareServers 15
ServerLimit 15
MaxClients 15
MaxRequestsPerChild 4000
Важно правильно выбрать MaxClients т.к. если значение будет мало, клиенты будут стоять в очереди и ждать выдачи страниц, а если слишком большое - то любая DDOS атака приведет к тому, что Apache начнет плодить процессы и израсходует всю свободную память и будет использовать своп и сервер уже может не выйти из комы. То есть выбрать значение нужно так - всю свободную память разделить на размер одного процесса Apache. Например, если есть 256М памяти, делим на вес процесса 25М и получаем, что около 10 клиентов может обслужить сервер одновременно т.е. ставим MaxClients 10.
Вес процесса можно уменьшить, но не сильно. Для этого нужно убрать все лишние модули в php.ini и в httpd.conf.
Когда сервер ведет лог, он по умолчанию преобразует IP адреса клиентов в имена хостов. Отключим это для увеличения скорости.
HostNameLookups Off
Поставим кодировку по умолчанию для отдачи страниц
AddDefaultCharset windows-1251
Добавим gzip сжатие страниц на лету, меньше будет объем, быстрее клиент заберет данные и отсоединится, это разгрузит память, будем жать html, xml, javascript, css.
LoadModule deflate_module modules/mod_deflate.so
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript text/css
включим виртуальный хостинг на 80 порту
NameVirtualHost *:80
Создадим один виртуальный хост:
<VirtualHost *:80>
ServerName host.com
ServerAlias www.host.com
DocumentRoot /var/www/host.com/
<Directory "/var/www/host.com/">
AllowOverride All
</Directory>
</VirtualHost>
ServerName host.com
ServerAlias www.host.com
DocumentRoot /var/www/host.com/
<Directory "/var/www/host.com/">
AllowOverride All
</Directory>
</VirtualHost>
Обычно этой основной настройки достаточно для начала, далее нужно подстраивать под конкретные задачи.
Комментариев нет:
Отправить комментарий