Оптимизированный VirtualHost Apache 2.4 для WordPress с HTTP/2, mod_expires и mod_deflate
Производительный конфиг Apache 2.4 VirtualHost для WordPress: протоколы h2 и http/1.1, сжатие mod_deflate, кэш mod_expires, защита wp-config.
Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
/etc/apache2/sites-available/wp-apache.example.com.conf
# /etc/apache2/sites-available/{{domain}}.conf
<VirtualHost *:80>
ServerName {{domain}}
ServerAlias www.{{domain}}
Redirect permanent / https://{{domain}}/
</VirtualHost>
<VirtualHost *:443>
ServerName {{domain}}
DocumentRoot /var/www/{{domain}}/public_html
Protocols h2 http/1.1
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/{{domain}}/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/{{domain}}/privkey.pem
# Подключение PHP-FPM через сокет
<FilesMatch \\.php$>
SetHandler "proxy:unix:/run/php/php{{php_version}}-fpm.sock|fcgi://localhost"
</FilesMatch>
<Directory /var/www/{{domain}}/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# Сжатие mod_deflate
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/json
</IfModule>
# Кэширование mod_expires
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 month"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
</IfModule>
# Защита wp-config.php
<Files wp-config.php>
Require all denied
</Files>
ErrorLog ${APACHE_LOG_DIR}/{{domain}}_error.log
CustomLog ${APACHE_LOG_DIR}/{{domain}}_access.log combined
</VirtualHost>
Разбор ключевых директив конфигурации
Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).
| Директива / Блок | Рекомендуемое значение | Зачем нужно и системное влияние (CPU / RAM / I-O) |
|---|---|---|
Protocols h2 http/1.1 |
HTTP/2 протокол | Включает мультиплексирование HTTP/2 в Apache 2.4 с модулем mpm_event, ускоряя загрузку параллельных ресурсов. |
SetHandler 'proxy:unix:...' |
mod_proxy_fcgi сокет | Использует быстрый PHP-FPM вместо устаревшего медленного mod_php. |
Рекомендуемые системные требования VDS под этот стек
Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.
Оптимальный сайзинг: 2 vCPU, 4 GB RAM, 50 GB NVMe
Расчетная нагрузка: до 20 000 хостов/сутки
Timeweb Cloud
2 CPU / 4 GB NVMe
Процессор:
2 vCPU
Память RAM:
4 GB RAM
Накопитель:
50 GB NVMe
Selectel
2 vCPU / 4 GB RAM
Процессор:
2 vCPU
Память RAM:
4 GB RAM
Накопитель:
50 GB NVMe
Beget
Turbo 4 GB
Процессор:
2 vCPU
Память RAM:
4 GB RAM
Накопитель:
50 GB NVMe
Онлайн-утилиты SysKit для проверки этого сервера
Протестируйте корректность применения конфигурации прямо сейчас в один клик.
Частые ошибки при настройке и их решение (FAQ)
Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.
Apache не запускается после включения Protocols h2
Убедитесь, что отключен старый MPM prefork (`a2dismod mpm_prefork`) и включен MPM event (`a2enmod mpm_event proxy_fcgi http2`).
Рекомендуемые смежные конфигурации
Дополнительные рецепты и калькуляторы для полной оптимизации данного серверного стека.