0

apache

ОПТИМИЗАЦИЯ APACHE

19.07.2022

Оптимизация Apache — настройка веб-сервера, которая требуется для того, чтобы он обслуживал приложение максимально точно соответствуя требованиям к его работе. При высоких нагрузках специальным образом настроив Apache можно добиться максимально быстрой отдачи им контента пользователю.

Оптимизация Apache для работы при высоких нагрузках

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

Отключение неиспользуемых модулей

Apache имеет очень богатый функционал и позволяет добиваться различных конфигураций. Функционал подключается за счет модулей. Посмотреть их список можно так:

apache2ctl -M

Loaded Modules:
core_module (static)
so_module (static)
access_compat_module (shared)
alias_module (shared)
auth_basic_module (shared)
authn_core_module (shared)
authn_file_module (shared)
authz_core_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cgi_module (shared)
deflate_module (shared)

php5_module (shared)
rewrite_module (shared)
setenvif_module (shared)
socache_shmcb_module (shared)
ssl_module (shared)
status_module (shared)

Каждый модуль дает какие-то возможности, но предполагает затрату ресурсов и уменьшение скорости обработки запроса. С нужными модулями Apache может быть скомпилирован сразу, тогда уменьшения производительности не происходит.

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

MPM – Multi-Processing Module

Способ работы с клиентскими запросами

Prefork — обрабатывает процессы как самостоятельные сущности, на поступающий запрос от основного процесса создается дочерний

Worker — обрабатывает процессы поточно, каждый запрос обслуживается в отдельном потоке с дочерним процессом

Какой MPM используется можно выяснить той же командой, которая использовалась ранее, но с другим ключем

apachectl -V | grep -i mpm

Server MPM: prefork

Переключение MPM (если Apache собран с поддержкой всех трех) выполняется за счет отключения модуля, подключения другого и перезапуска службы.

Например если нужно сменить prefork на worker:

a2dismod mpm_prefork_module

a2enmod mpm_worker.load

Перезапускаем Apache

/etc/init.d/apache2 restart

Два MPM одновременно использоваться не могут, если пробовать их включить возникнет конфликт. Для каждого можно задавать индивидуальные настройки в /etc/apache2/apache2.conf (для всех mpm в нем есть отдельная секция по умолчанию).

AllowOverride

Для увеличения производительности имеет смысл отключать использование .htaccess за счет AllowOverride

Сжатие

Сжатый контент будет отдаваться значительно быстрее за счет сокращения workload в каждом ответе сервера. Читайте о том, как включить сжатие.

Запросы к DNS

Как любая другая служба, работающая по сети Apache может обращаться к DNS чтобы разрешить доменное имя в IP адрес. Это поведение лучше отключать директивой HostnameLookups Off

В логи при этом будут писаться только IP адреса.

В нагруженных системах от Apache часо отказываются оставляя только Nginx, который тоже специально настраивается.

Свежие комментарии

Подписка

Лучшие статьи

Рубрики

Популярное

elk
Previous Story

Что такое стек ELK: применение, установка и настройка Elasticsearch, Logstash и Kibana

nginx
Next Story

NGINX КОНФИГУРАЦИОННЫЙ ФАЙЛ ДЛЯ РАБОТЫ ПРИ ВЫСОКИХ НАГРУЗКАХ

Latest from Blog

RouterOS/MikroTik на Debian

RouterOS — операционная система, основанная на ядре Linux, предназначенная для маршрутизации, брандмауэра, работы с VPN как сервером и клиентом, а также функционирования в качестве точки беспроводного доступа. Эта система может действовать в роли

How to Install Proxmox Virtual Environment on Debian 11

Introduction Proxmox Virtual Environment is an open-source virtualization management program. It provides a single platform to manage services and functions like KVM Hypervisor, Linux Containers (LXC), storage & networking. In addition, it

Настройка Wireguard VPN на своем сервере

Настройка серверной части После успешного подключения я напишу несколько команд и описание того что они производят для понимания процесса: Обновляем список пакетов в репозиториях apt update Обновим сами пакеты apt upgrade -y

Установка Zabbix 7 c NGINX + PostgreSQL + TimescaleDB на Ubuntu Server или Debian

Сервер Zabbix предполагает достаточную вариативность в выборе СУБД и веб-сервера, поэтому многое тут будет зависеть от персональных предпочтений. Однако расширение TimescaleDB позволяет поддерживать высокий уровень производительности и масштабирования при работе с временными

Настройка простого беспроводного репитера на устройстве MikroTik

При развертывании беспроводных сетей достаточно часто возникают ситуации, когда в некоторых местах квартиры или офиса мощность Wi-Fi сигнала недостаточна для уверенной работы. Конечно, наиболее действенным решением является создание централизованно управляемой сети и
Go toTop