Оптимизированный VirtualHost Apache 2.4 для WordPress с HTTP/2, mod_expires и mod_deflate

Обновлено: Август 2026 Стек: Apache 2.4.58+, PHP 8.2 (PHP-FPM via mod_proxy_fcgi), WordPress 6.x Проверено: Production-Ready

Производительный конфиг 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`).