Установка и базовая настройка Nginx на Ubuntu 24.04

Сайты и веб-серверы
Установка и базовая настройка Nginx на Ubuntu 24.04

Установка Nginx на Ubuntu — первое, что делают на свежем VPS, когда нужен быстрый веб-сервер для сайта, API или отдачи статики. Nginx обслуживает значительную часть всех сайтов в интернете, потому что расходует минимум памяти и легко держит тысячи одновременных соединений. В этой инструкции разберём установку Nginx на Ubuntu 24.04 LTS с нуля: обновление системы, установку из репозитория, открытие портов в файрволе, создание server block для вашего домена и проверку конфигурации. Все команды рабочие — можно копировать в терминал по порядку. На выходе получите готовый веб-сервер, который уже отдаёт страницы по HTTP.

Что такое Nginx и почему его выбирают

Nginx (читается «энджин-икс») — веб-сервер с событийной архитектурой. Вместо того чтобы создавать отдельный процесс на каждое соединение, он обрабатывает тысячи запросов небольшим числом worker-процессов. Отсюда его главные плюсы:

  • Низкое потребление памяти. В простое — считанные мегабайты, под нагрузкой рост почти линейный и предсказуемый.
  • Быстрая отдача статики. Картинки, CSS, JS и видео Nginx отдаёт напрямую с диска — на VPS с NVMe-накопителем это происходит практически мгновенно.
  • Обратный прокси из коробки. Nginx часто ставят перед приложениями на PHP, Node.js или Python как единую точку входа.
  • Простая конфигурация. Один читаемый файл на сайт, проверка синтаксиса одной командой.

Если вы ещё выбираете между веб-серверами, у нас есть отдельный разбор Apache и случаев, когда он лучше Nginx. Короткая версия: для статики, прокси и высоких нагрузок берите Nginx.

Что понадобится перед установкой

Для работы нужен VPS с Ubuntu 24.04 LTS и root-доступом (или пользователь с sudo). Nginx сам по себе нетребователен, но обычно на том же сервере живут PHP и база данных, поэтому закладывайте ресурсы на весь стек. Для типичного сайта хватит тарифа Start у Cheap-Host: 6 vCPU, 8 ГБ RAM и 96 ГБ NVMe за 450 ₽/мес — сервер выдаётся автоматически за 45–60 секунд, сразу с выделенным IPv4 и SSH-доступом.

Подключитесь к серверу по SSH. Если делаете это впервые, посмотрите инструкцию как подключиться к VPS по SSH с Windows, macOS и Linux.

Установка Nginx на Ubuntu 24.04: пошагово

Шаг 1. Обновляем систему

sudo apt update && sudo apt upgrade -y

Это подтянет свежие индексы пакетов и установит обновления безопасности. На свежем сервере занимает пару минут.

Шаг 2. Устанавливаем Nginx

sudo apt install nginx -y

В Ubuntu 24.04 из репозитория ставится стабильная ветка Nginx 1.24. Служба запускается автоматически. Проверим:

systemctl status nginx

В выводе должно быть active (running). Версию можно узнать командой:

nginx -v

Шаг 3. Открываем порты в файрволе

Если используете UFW (а на боевом сервере он должен быть включён), разрешите HTTP и HTTPS. Nginx регистрирует в UFW готовые профили:

sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
sudo ufw status

Профиль Nginx Full открывает порты 80 и 443. Правило для OpenSSH обязательно добавьте до включения файрвола, иначе потеряете доступ к серверу. Подробнее о правилах — в статье про настройку файрвола UFW на Ubuntu.

Шаг 4. Проверяем работу

Откройте в браузере http://IP_вашего_сервера. Если видите страницу «Welcome to nginx!» — веб-сервер установлен и отвечает. Ту же проверку можно сделать из терминала:

curl -I http://localhost

В ответе будет строка HTTP/1.1 200 OK и заголовок Server: nginx.

Базовая настройка: server block для сайта

Server block — это аналог виртуального хоста: отдельная конфигурация под каждый домен. Стандартная страница Nginx лежит в /var/www/html, но для своего сайта правильнее завести отдельный каталог.

Создаём каталог сайта

sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com/html
echo '<h1>It works!</h1>' > /var/www/example.com/html/index.html

Замените example.com на свой домен. Если домен ещё не направлен на сервер, сначала пропишите A-запись — как это сделать, описано в статье как привязать домен к VPS.

Создаём конфигурацию

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

Вставьте минимальный рабочий конфиг:

server {
    listen 80;
    listen [::]:80;

    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html index.htm;

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

Что здесь важно:

  • listen 80 — приём HTTP-запросов на 80-м порту;
  • server_name — домены, на которые отвечает этот блок;
  • root — каталог с файлами сайта;
  • try_files — сначала ищем файл, потом каталог, иначе отдаём 404.

Включаем сайт и применяем конфигурацию

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Команда nginx -t проверяет синтаксис: если в конфиге ошибка, она покажет файл и строку, а рабочая конфигурация не пострадает. Возьмите за правило запускать её перед каждым reload. После перезагрузки конфигурации сайт открывается уже по домену.

Полезные команды управления Nginx

КомандаЧто делает
sudo systemctl reload nginxПеречитать конфигурацию без разрыва соединений
sudo systemctl restart nginxПолный перезапуск службы
sudo systemctl stop nginxОстановить веб-сервер
sudo systemctl enable nginxВключить автозапуск при загрузке (включён по умолчанию)
sudo nginx -tПроверить синтаксис конфигурации
sudo tail -f /var/log/nginx/error.logСмотреть журнал ошибок в реальном времени

Логи — первое место, куда стоит смотреть при любых проблемах: журнал доступа лежит в /var/log/nginx/access.log, ошибки — в /var/log/nginx/error.log.

Частые ошибки при установке Nginx

  • «Address already in use» при запуске. Порт 80 занят другим процессом, чаще всего Apache. Проверьте: sudo ss -tlnp | grep :80 — и остановите лишнюю службу.
  • Сайт не открывается извне, но curl на localhost работает. Порт закрыт файрволом. Проверьте sudo ufw status и добавьте профиль Nginx Full.
  • 403 Forbidden. У Nginx нет прав на чтение каталога сайта или в нём нет индексного файла. Проверьте права и директиву index.
  • Изменения в конфиге «не работают». Забыт reload или симлинк в sites-enabled. Ещё вариант — конфликт server_name с дефолтным конфигом: удалите симлинк /etc/nginx/sites-enabled/default, если он не нужен.

Что настроить дальше

Голый Nginx по HTTP — только начало. Следующие шаги для боевого сайта:

  1. Выпустить бесплатный сертификат и перевести сайт на HTTPS — инструкция по Let's Encrypt и certbot.
  2. Подключить PHP и базу данных, если сайт динамический — это разобрано в руководстве по установке LEMP-стека на Ubuntu.
  3. Включить сжатие gzip и настроить кеширование статики.

FAQ

Какая версия Nginx ставится на Ubuntu 24.04 из репозитория?

Стабильная ветка 1.24. Для большинства сайтов её достаточно; свежие версии при желании доступны из официального репозитория nginx.org.

Чем reload отличается от restart?

reload перечитывает конфигурацию без разрыва текущих соединений — посетители ничего не заметят. restart полностью перезапускает процесс. Для применения правок в конфигах почти всегда достаточно reload.

Сколько ресурсов сервера нужно Nginx?

Сам Nginx крайне экономен: несколько мегабайт RAM в простое. Ресурсы обычно съедают PHP и база данных, поэтому сервер выбирайте под весь стек, а не под веб-сервер.

Почему после изменения конфига сайт не обновился?

Чаще всего забыт sudo systemctl reload nginx или не создан симлинк в sites-enabled. Сначала — sudo nginx -t, потом reload.

Можно ли разместить несколько сайтов на одном Nginx?

Да, под каждый домен создаётся свой server block. Nginx выберет нужный по заголовку Host запроса.

Вывод

Установка Nginx на Ubuntu 24.04 занимает три команды, а базовая настройка сайта — ещё десять минут: каталог в /var/www, server block в sites-available, симлинк, nginx -t и reload. Дальше — SSL-сертификат и, при необходимости, PHP с базой данных. Если для этой задачи вам нужен сервер — у Cheap-Host тариф Start от 450 ₽/мес: 6 vCPU, 8 ГБ RAM, NVMe-диск, KVM с полным root-доступом и безлимитный трафик, выдача сервера за минуту. Посмотреть тарифы можно на cheap-host.onl.