Быстрый старт: сайт за 15 минут
От чистой машины до работающего сайта на nginx с сертификатом HTTPS: установка, каталог сайта, домен, брандмауэр и проверка.
Обновлено 23 августа 2026 г.
Сценарий: свежий Debian или Ubuntu, свой домен и желание увидеть страницу по HTTPS. Все команды выполняются от root по SSH.
1. Установить nginx
apt update && apt install -y nginx
systemctl enable --now nginx
Откройте http://ваш-адрес в браузере — должна появиться приветственная страница. Если не появилась, проверьте брандмауэр (шаг 3).
На AlmaLinux вместо apt используйте dnf, см. AlmaLinux.
2. Направить домен
В панели вашего регистратора добавьте запись A с адресом машины из вкладки «Обзор»:
example.com. A 203.0.113.10
www.example.com. A 203.0.113.10
Проверьте, что домен разрешается в нужный адрес:
apt install -y dnsutils
dig +short example.com
Обновление записей занимает от минуты до нескольких часов. Пока dig возвращает старый адрес, сертификат выпустить не удастся.
3. Открыть порты
apt install -y ufw
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
Сначала
allow OpenSSH, потомenable. Обратный порядок отрежет вам доступ, и заходить придётся через текстовую консоль.
4. Создать сайт
mkdir -p /var/www/example.com
echo '<h1>Работает</h1>' > /var/www/example.com/index.html
chown -R www-data:www-data /var/www/example.com
Конфигурация в /etc/nginx/sites-available/example.com:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Включить и применить:
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx
nginx -t обязателен: он проверяет конфиг до перезапуска. Если вывод не заканчивается на syntax is ok и test is successful, не перезагружайте службу — сначала исправьте ошибку.
5. Выпустить сертификат
apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com
Certbot спросит почту, добавит блок listen 443 ssl и перенаправление с HTTP. Продление ставится автоматически, проверить можно так:
certbot renew --dry-run
Что чаще всего идёт не так
| Симптом | Причина |
|---|---|
| Браузер не открывает сайт | Закрыт порт 80 или 443 в ufw |
Certbot: Timeout during connect | Домен ещё не указывает на машину или порт 80 закрыт |
502 Bad Gateway | nginx проксирует на приложение, которого нет — проверьте systemctl status вашего сервиса |
403 Forbidden | Нет прав на каталог или отсутствует index.html |
| Страница nginx по умолчанию вместо вашей | Не удалён /etc/nginx/sites-enabled/default |
Логи при любой из проблем:
tail -n 50 /var/log/nginx/error.log
journalctl -u nginx -n 50 --no-pager
Дальше стоит закрыть базовую безопасность по чек-листу первого часа, если вы его ещё не прошли.