Генератор виртуального хоста Apache

Укажите домен и папку с файлами сайта, выберите HTTPS и дополнительные настройки — и скопируйте полную конфигурацию Apache 2.4: блок на порту 80 с редиректом и блок на 443 с сертификатами, правами на папку и логами.

Папка с файлами сайта, абсолютный путь.
Оставьте пустым для путей Let's Encrypt в /etc/letsencrypt/live/<домен>/.

Debian/Ubuntu: сохраните как /etc/apache2/sites-available/<домен>.conf, затем a2ensite <домен>, при необходимости a2enmod ssl headers http2, apachectl configtest и systemctl reload apache2.

Работает в браузере: всё, что вы вводите, никуда не отправляется.

Как пользоваться

  1. Введите домен без http:// и решите, нужен ли www..
  2. Укажите корневую папку, например /var/www/example.com/public.
  3. Для HTTPS оставьте поля сертификата пустыми, если пользуетесь certbot, или впишите свои пути.
  4. Выберите дополнительные настройки, скопируйте конфиг и включите сайт по подсказке под ним.

Как это работает

  • ServerName и ServerAlias определяют, на какие запросы отвечает блок.
  • <Directory> открывает доступ синтаксисом Apache 2.4 Require all granted, задаёт Options -Indexes +FollowSymLinks (или +Indexes для списка файлов) и AllowOverride All или None.
  • С HTTPS блок 443 получает SSLEngine on и файлы сертификата; блок 80 либо перенаправляет через Redirect permanent / https://домен/, либо отдаёт тот же сайт.
  • HTTP/2 добавляет Protocols h2 http/1.1 (модуль http2), HSTS — Header always set Strict-Transport-Security "max-age=31536000" (модуль headers).
  • Логи пишутся в <папка>/<домен>-error.log и <домен>-access.log в формате combined.

Пример

Для example.com с www, HTTPS, редиректом, HTTP/2 и логами блок на порту 80 такой:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    Redirect permanent / https://example.com/
</VirtualHost>

В блоке на 443 те же имена, DocumentRoot /var/www/example.com/public, раздел <Directory>, две строки логов и:

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    Protocols h2 http/1.1

Советы

  • Перед каждой перезагрузкой выполняйте apachectl configtest: опечатка не даст Apache запуститься.
  • Сначала получите сертификат (certbot certonly --webroot или с конфигом только для HTTP), потом включайте HTTPS: без файла сертификата Apache не стартует.
  • Файлы в корневой папке должны быть доступны пользователю Apache (www-data или apache) на чтение, а секреты храните вне её.

Частые вопросы

Куда положить файл?

В Debian и Ubuntu — в /etc/apache2/sites-available/ под именем example.com.conf и включить командой a2ensite example.com. В RHEL, Fedora и похожих системах — в /etc/httpd/conf.d/ под именем example.com.conf, он подхватится сам. После этого перезагрузите Apache.

Зачем два блока VirtualHost?

Один слушает порт 80 для обычного HTTP, другой — 443 для HTTPS. С включённым редиректом блок на порту 80 только отправляет посетителей на HTTPS-адрес с кодом 301; имя и псевдоним в нём сохраняются, чтобы перенаправлялись и example.com, и www.example.com.

Какие файлы сертификата указывать с Let's Encrypt?

certbot хранит их в /etc/letsencrypt/live/<домен>/: fullchain.pem — для SSLCertificateFile, privkey.pem — для SSLCertificateKeyFile. Начиная с Apache 2.4.8 файл сертификата может содержать всю цепочку, и SSLCertificateChainFile не нужен.

Что меняет AllowOverride All?

Разрешает файлам .htaccess в папке сайта менять конфигурацию — на это опираются многие PHP-приложения для ЧПУ. С None Apache вообще не читает .htaccess, это немного быстрее; правила тогда переносят в виртуальный хост.

Включать ли HSTS?

Только если сайт и все используемые поддомены работают по HTTPS. Браузеры, увидевшие заголовок, отказываются открывать домен по HTTP весь срок max-age — здесь год, — даже если HTTPS потом отключить.

Что такое ${APACHE_LOG_DIR}?

Переменная из файла envvars в Debian и Ubuntu, обычно /var/log/apache2. В других системах укажите настоящую папку, например /var/log/httpd.

Ещё в разделе «Разработчикам»

Все инструменты раздела: Разработчикам ·Обновлено 4 ноября 2026 г.

Настройки конфиденциальности

Google Analytics показывает нам, какими инструментами пользуются и работают ли они. Он может ставить cookie. Ваш выбор сохраняется в этом браузере.