Перейти к содержимому
VDS · Начало работы

Быстрый старт: сайт за 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 Gatewaynginx проксирует на приложение, которого нет — проверьте 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

Дальше стоит закрыть базовую безопасность по чек-листу первого часа, если вы его ещё не прошли.