Показать статистику
0 голосов
от (2.3тыс. баллов)
Подскажите как можно ускорить работу моего HTTP-сервера Apache.
512 просмотров 1 ответов

1 Ответ

0 голосов
от (26.3тыс. баллов)

Можно легко оптимизировать ваш сервер Apache для WordPress, Drupal, включая сайты с высоким трафиком, которые могут привести к замедлению или ухудшению работы Apache.! Это также дает возможность  остановить DDOS-атаки на вашем сервере , ознакомившись с этим руководством. 

MaxKeepAliveRequests и KeepAliveTimeout

Документация Apache, использующая HTTP Keep Alive, может повысить производительность на 50%. Эти две директивы важны и всегда должны быть включены. Вы всегда можете изменить их на любое другое, которое вы желаете. 

Значение по умолчанию MaxKeepAliveRequests равно 100, а значение по умолчанию KeepAliveTimeout равно 15.

Рекомендуемое значение для MaxKeepAliveRequests может составлять от 50 до 75 .

Рекомендуемое значение для KeepAliveTimeout может быть от 1 до 5 .

MaxClients

Эта директива позволяет вам установить ограничение на количество соединений, которые будут обслуживаться одновременно. Каждое новое соединение будет поставлено в очередь после этого лимита. Он доступен с Prefork и Worker как MPM. Значение по умолчанию это 256 .

LimitRequestFields

Это помогает нам установить ограничение на количество полей заголовка HTTP-запроса, которые будут приниматься от клиентов. Его значение по умолчанию равно 100. Рекомендуется уменьшить это значение, если DDos-атаки происходят из-за большого количества заголовков http-запросов.

Пример оптимизации:

Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MinSpareServers 5
MaxSpareServers 10
StartServers 5
MaxClients 150
MaxRequestsPerChild 0

Timeout 

Обычно это значение не требует редактирования, и по умолчанию достаточно 300. Снижение значения Timeout приведет к тому, что длительный скрипт завершит работу раньше, чем ожидалось. На виртуализированных серверах, таких как серверы VPS, снижение этого значения до 100 может помочь повысить производительность.

KeepAlive

Этот параметр должен быть включен, если сервер не получает запросы от сотен IP-адресов одновременно. Для серверов с большим объемом и / или балансировкой нагрузки этот параметр должен быть отключен (Off) для увеличения пропускной способности соединения.

MaxKeepAliveRequests

Этот параметр ограничивает количество запросов, разрешенных для постоянного подключения, когда включен KeepAlive. Если установлено значение 0, неограниченные запросы будут разрешены. Рекомендуется сохранить это значение равным 100 для виртуальных учетных записей, таких как учетные записи VPS. На выделенных серверах рекомендуется изменить это значение до 150.

KeepAliveTimeout

Количество секунд, в течение которых Apache будет ожидать другого запроса, прежде чем закрывать соединение. Установка этого значения в высокое значение может вызвать проблемы с производительностью на сильно загруженных серверах. Чем больше время ожидания, тем больше серверных процессов будут заняты в ожидании соединений с незанятыми клиентами.

Рекомендуется уменьшить это значение до 5 на всех серверах.

MinSpareServers

Эта директива устанавливает желаемое минимальное количество незанятых дочерних процессов сервера. Бесполезный процесс - это процесс, который не обрабатывает запрос. Если в этом значении меньше свободных резервных серверов, чем указано в этом значении, то родительский процесс создает новых дочерних элементов с максимальной скоростью 1 в секунду. Установка этого параметра на большое число - почти всегда плохая идея.

Рекомендуемые значения для этого параметра:

Virtualized server, ie VPS 5
Dedicated server with 1-2GB RAM 10
Dedicated server with 2-4GB RAM 20
Dedicated server with 4+ GB RAM 25

MaxSpareServers

Директива MaxSpareServers устанавливает желаемое максимальное количество незанятых дочерних процессов сервера. Бесполезный процесс - это процесс, который не обрабатывает запрос. Если больше чем MaxSpareServers, то родительский процесс уничтожит лишние процессы.

Значение MaxSpareServers должно быть задано как двойное значение, установленное в MinSpareServers.

StartServers

Эта директива устанавливает количество дочерних серверных процессов, созданных при запуске. Это значение должно отражать то, что установлено в MinSpareServers.

MaxClients

Эта директива устанавливает ограничение на количество одновременных запросов, которые будут обслуживаться. Любые попытки подключения сверх указанного лимита будут поставлены в очередь. Как только процесс освобождается в конце другого запроса, соединение в очереди будет обслуживаться.

Для виртуализированных серверов, таких как учетные записи VPS, рекомендуется сохранить это значение равным 150. Для всех выделенных серверов рекомендуемое значение для этого параметра - 250.

MaxRequestsPerChild

Эта директива устанавливает ограничение на количество запросов, которые будет обрабатывать отдельный процесс дочернего сервера. После того, как количество запросов достигнет указанного значения, дочерний процесс умрет. Когда это значение установлено в 0, тогда процесс никогда не истечет.

Рекомендуемое значение для этого параметра:

Virtualized server, ie VPS 300
Dedicated server with 1-4GB RAM 500
Dedicated server with 4+GB RAM 1000
...