Настройка и оптимизация веб сервера Apache.

Про установку LAMP сервера  и настройку Apache уже писали. Мы свами немного углубимся и разберемся с глобальными настройками. И оптимизируем Apache под слабый сервер.

Первым делам заглянем в файл настройки /etc/apache2/conf-available/security.conf :

ServerTokens Minimal #Установим минимальные сведения о сервере. Даная настройка повышает безопасность  веб сервера.

ServerSignature Off #Не указывать E-mail при ошибках сервера.

Далее пойдем в глобальные настройки /etc/apache2/apache2.conf 

Timeout 60 #Указывает как долго сервер будет пытаться продолжить прерванную передачу или прием данных, 60 секунд за глаза.

KeepAlive On #Позволяет передавать несколько файлов, за одно соединение, конечно же включаем.

MaxKeepAliveRequests 100 #Максимальное количество запросов за одно соединение. Скажем если пользователи в среднем смотрят только одну страницу на сайте,и она не очень тяжелая, не нагружена графикой то значение 100 вполне подойдет или даже много.

KeepAliveTimeout 15 #Таймаут соединения, обычно для загрузки страницы достаточно 5-10 секунд.

MaxClients 14 #Устанавливает максимальное количество параллельных запросов, которые будет обрабатывать сервер. При подключении нового пользователя Apache  создает новый процесс . Для статических файлов apache
использует около 2-3 Мб на процесс, для динамики (php, cgi) — зависит
от скрипта, но обычно около 16-50 Мб. Данный параметр надо выбирать из  объёма оперативной памяти и числа клиентов одновременно обращающихся к серверу. Если сервер уже обслуживает MaxClients запросов, новые запросы попадут в очередь, размер которой устанавливается с помощью директивы ListenBacklog.

По умолчанию Apache работает в режиме prefork mpm, то есть для каждого пользователя создается отдельный процесс. Опции MaxSpareServers  MinSpareServers и StartServers  используются  только в этом режиме. Эти директивы позволяют заранее иметь в памяти созданные процессы, чтобы не приходилось этого делать во время получения запроса.

MaxSpareServers 5  #Максимальное число свободных процессов. Если MaxSpareServers слишком велико, apache будет сильно нагружать
систему этими процессами, даже если количество клиентов минимально.

MinSpareServers 3  #Минимальное число.

StartServers 1 #При запуске будет создан 1 процесс.

MaxRequestsPerChild 2000 #Устанавливает сколько запросов может обработать один дочерний процесс/поток прежде чем он будет завершен.Этот параметр позволяет избавиться от проблем с утечкой памяти.

Ну и конечно для производительности веб сервера очень важно сжатие трафика. Так что не забудьте проверить что модуль mod_deflate включен. Вот и все что хотелось вам рассказать, надеюсь моя статья вам помогла.