Как пользоваться
- Введите домен без
http://и решите, нужен лиwww.. - Укажите корневую папку, например
/var/www/example.com/public. - Для HTTPS оставьте поля сертификата пустыми, если пользуетесь certbot, или впишите свои пути.
- Выберите дополнительные настройки, скопируйте конфиг и включите сайт по подсказке под ним.
Как это работает
ServerNameиServerAliasопределяют, на какие запросы отвечает блок.<Directory>открывает доступ синтаксисом Apache 2.4Require 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) на чтение, а секреты храните вне её.