цены сверены 16 октября 2026 года

Установка Nginx на VPS с Ubuntu 24.04

Nginx на Ubuntu 24.04 ставится одной командой sudo apt install nginx. Дальше нужно создать server block для домена, проверить его командой nginx -t, перечитать конфиг через reload и открыть порты 80 и 443 в ufw.

Установка Nginx на VPS с Ubuntu 24.04
Содержание
  1. Что понадобится
  2. Установите Nginx
  3. Проверьте, что он работает
  4. Где лежат файлы
  5. Создайте server block для домена
  6. Проверьте конфиг и перечитайте его
  7. Откройте порты 80 и 443
  8. Сертификат HTTPS
  9. Логи
  10. Что делать дальше
Команды проверены 12 октября 2026 годачистая Ubuntu 24.04 · Nginx 1.24.0Как мы проверяем

Что понадобится

Сервер с Ubuntu 24.04, вход по SSH и пользователь с правом sudo. Если сервера ещё нет, начните с первой настройки VPS, а про вход на сервер читайте в статье подключение к VPS по SSH.

Для домена нужна A-запись, которая указывает на IP-адрес сервера. Её создают в DNS-настройках у регистратора или хостера. Обновление записи занимает от нескольких минут до нескольких часов.

Nginx это веб-сервер: он принимает запросы из браузера и отдаёт файлы сайта или передаёт запрос вашему приложению. Мы ставим версию из репозитория Ubuntu. Она получает исправления безопасности вместе с обычными обновлениями системы.

Установите Nginx

sudo apt update
sudo apt install nginx

Первая команда обновляет список пакетов. Вторая ставит Nginx и сразу запускает его как службу. Подтвердите установку клавишей y.

Проверьте, что он работает

sudo systemctl status nginx
nginx -v
curl -I http://localhost

systemctl status показывает состояние службы, нужна строка active (running). nginx -v печатает установленную версию. curl -I запрашивает у сервера только заголовки: ответ HTTP/1.1 200 OK значит, что Nginx отвечает на запросы.

Автозапуск при загрузке сервера включается вместе с установкой пакета. Проверить его можно командой systemctl is-enabled nginx, ответ enabled.

Если открыть в браузере IP-адрес сервера и страница не грузится, дело в файрволе. Порты открывают ниже.

Где лежат файлы

Путь Что там
/etc/nginx/nginx.conf главный конфиг, обычно его не правят
/etc/nginx/sites-available/ конфиги сайтов (черновики и рабочие)
/etc/nginx/sites-enabled/ ссылки на включённые конфиги
/var/www/html/ стартовая страница по умолчанию
/var/log/nginx/ журналы доступа и ошибок

Схема простая: конфиг сайта пишут в sites-available, а в sites-enabled кладут на него символическую ссылку. Нет ссылки, нет и сайта.

Создайте server block для домена

Server block (блок server) описывает один сайт: на какой домен он отвечает и откуда берёт файлы. Для примера возьмём домен example.ru. Подставьте свой.

Сначала создайте каталог и страницу:

sudo mkdir -p /var/www/example.ru
echo '<h1>example.ru работает</h1>' | sudo tee /var/www/example.ru/index.html

mkdir -p создаёт каталог для файлов сайта. Вторая команда записывает в него простую страницу: tee с sudo нужен, потому что обычная перенаправляющая запись > не получит права root.

Теперь конфиг:

sudo nano /etc/nginx/sites-available/example.ru

Команда открывает редактор nano. Вставьте:

server {
    listen 80;
    listen [::]:80;
    server_name example.ru www.example.ru;

    root /var/www/example.ru;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

listen задаёт порт (80 для IPv4 и IPv6). server_name перечисляет домены, на которые отвечает блок. root указывает каталог с файлами. try_files ищет файл по адресу запроса и при неудаче отдаёт ошибку 404.

Включите сайт:

sudo ln -s /etc/nginx/sites-available/example.ru /etc/nginx/sites-enabled/

Команда создаёт ссылку в sites-enabled. Страницу-заглушку Nginx из пакета при этом можно оставить: она отвечает только на запросы, которые не подошли ни под один домен. Если нужно отключить её, удалите ссылку /etc/nginx/sites-enabled/default, сам файл в sites-available останется.

Проверьте конфиг и перечитайте его

sudo nginx -t
sudo systemctl reload nginx

nginx -t проверяет синтаксис всех конфигов и ничего не меняет. При успехе выводит syntax is ok и test is successful. reload просит Nginx прочитать новый конфиг без остановки: открытые соединения не рвутся. Всегда запускайте nginx -t перед reload: с ошибкой в конфиге Nginx не применит изменения, а при полном restart может не запуститься.

Если сайт проксирует запросы к приложению, вместо root и try_files в блок location / пишут proxy_pass http://127.0.0.1:3000;, где 3000 это порт приложения. Приложение при этом слушает только локальный адрес.

Откройте порты 80 и 443

Если вы включили файрвол ufw, разрешите веб-трафик:

sudo ufw allow 'Nginx Full'
sudo ufw status

Профиль Nginx Full приходит вместе с пакетом и открывает сразу порты 80 (HTTP) и 443 (HTTPS). status показывает итоговый список правил. Если ufw выключен, включайте его по статье настройка файрвола ufw: сначала разрешите SSH, иначе потеряете доступ к серверу.

Откройте http://example.ru в браузере. Должна появиться ваша страница. Если не появилась, проверьте A-запись командой dig +short example.ru (пакет dnsutils) или на сайте регистратора.

Сертификат HTTPS

Порт 443 открыт, но без сертификата сайт по HTTPS не заработает. Выпуск бесплатного сертификата описан в статье бесплатный SSL на VPS.

Логи

sudo tail -n 20 /var/log/nginx/access.log
sudo tail -n 20 /var/log/nginx/error.log

tail -n 20 выводит последние 20 строк файла. В access.log лежит по строке на каждый запрос: адрес клиента, адрес страницы, код ответа. В error.log попадают ошибки: неверный путь, отказ в доступе, недоступное приложение. Следить за журналом в реальном времени можно командой sudo tail -f /var/log/nginx/error.log, выход через Ctrl+C. Про общие журналы системы читайте в статье журналы и службы systemd.

Ротация журналов настроена пакетом: старые файлы сжимаются и удаляются автоматически, ничего делать не нужно.

Что делать дальше

Выпустите сертификат по статье про SSL на VPS и настройте резервные копии. Если сервера под сайт ещё нет, сравните тарифы на странице подбора VPS: сейчас в базе 261 тарифов от 140 ₽ в месяц, данные сверены 16 октября 2026 года.