Как установить nginx на Ubuntu: пошаговая инструкция

Установить nginx ubuntu с нуля: гайд для новичка

Марина
Марина
📅 11 сентября 2026
Установить nginx ubuntu с нуля: гайд для новичка

Чтобы установить nginx на Ubuntu, хватает двух команд и примерно 5 минут: пакет лежит в штатном репозитории системы, служба стартует сразу после распаковки и уже отдаёт тестовую страницу на порту 80. Сложности начинаются дальше — с конфигурацией первого сайта, автозапуском после перезагрузки и сертификатом HTTPS. Весь путь разбираем на арендованном сервере: подходящие тарифы собраны в разделе VPS под nginx, где сейчас 44 провайдера.

Материал рассчитан на новичка, который впервые получил доступ к серверу по SSH и хочет открыть на нём свой первый сайт. Внутри: сколько стоит машина под задачу, какую версию nginx брать, пошаговая установка, конфиг виртуального хоста, бесплатный сертификат Let’s Encrypt, открытие портов и список ошибок, на которых спотыкаются почти все.

Что такое nginx и зачем его ставят на Ubuntu

Nginx — это веб-сервер: программа, которая принимает запросы браузера по сети и отдаёт в ответ файлы или результат работы приложения. Без неё сервер на запрос браузера просто не ответит: порт закрыт, отдавать некому. Разбор архитектуры и основных терминов собран в статье словаря про nginx.

Вторая роль nginx — обратный прокси. Он принимает запрос на порту 443, а внутрь передаёт его приложению, которое слушает, например, порт 3000 на локальном адресе. Так работают почти все проекты на Python, Node.js и Go: само приложение не публикуют наружу, перед ним ставят обратный прокси, который занимается шифрованием, сжатием и раздачей статики.

Ubuntu стала стандартом для этой связки по двум причинам. Во-первых, у неё длинный цикл поддержки: LTS-выпуски (версии с долгой поддержкой) получают обновления безопасности 5 лет, а версию 24.04 будут чинить до 2029 года. Во-вторых, пакеты nginx собраны сопровождающими дистрибутива и обновляются вместе с системой — одной командой, без сборки из исходников.

На типовом сайте с посещаемостью до 50 тысяч визитов в месяц разница в скорости почти незаметна, а вот память nginx экономит ощутимо: рабочий процесс держится в пределах 10–20 МБ. Apache — другой популярный веб-сервер — при том же трафике съедает больше, потому что на каждое соединение поднимает отдельный процесс.

Что нужно подготовить до установки

Нужен сервер с чистой Ubuntu и root-доступом: root — главный пользователь системы, которому разрешено всё. Виртуальный хостинг не подойдёт: там веб-сервер уже настроен провайдером и своих служб вы не ставите. Минимальная конфигурация под статический сайт или лендинг — 1 ядро, 1 ГБ оперативной памяти и 10 ГБ диска; под сайт на WordPress с базой данных лучше сразу брать 2 ГБ памяти и 20 ГБ NVMe.

Второе — доступ по SSH, то есть по защищённому протоколу удалённого управления. Провайдер после оплаты присылает IP-адрес, логин root и пароль либо просит загрузить публичный ключ. Подключаются командой ssh root@203.0.113.10, подставив вместо адреса из примера свой. Если сервер только что создан, первое подключение попросит подтвердить отпечаток ключа — это нормально.

Третье — домен, если планируете HTTPS. Без домена сертификат Let’s Encrypt не выдаётся, на голый IP-адрес его получить нельзя. A-запись — строка в настройках домена, которая связывает имя с IP-адресом. Она должна указывать на IP вашего сервера. Обновление записей у большинства регистраторов расходится по DNS за 15–60 минут, иногда дольше. Пока запись не разошлась, шаг с сертификатом делать бессмысленно.

Сколько стоит сервер под nginx: цены на сентябрь 2026

Веб-сервер сам по себе почти ничего не потребляет, поэтому стартовать можно с самого дешёвого VPS и добавить ресурсов позже. В таблице — минимальные цены провайдеров, у которых есть готовые образы Ubuntu, по данным нашего каталога.

Провайдер Цена от Стартовая конфигурация Рейтинг
Cloudcore 59 ₽/мес 1 ядро, 1 ГБ памяти, 10 ГБ NVMe 3.3
Hosting-Russia 99 ₽/мес 1 ядро, 1 ГБ памяти, SSD 3.3
HostVDS 127 ₽/мес 1 ядро, 1 ГБ памяти, 10 ГБ NVMe 3.3
RuVDS 139 ₽/мес 1 ядро, 0,5 ГБ памяти, 10 ГБ HDD 4.3
4VPS 110 ₽/мес 1 ядро, 1 ГБ памяти, 5 ГБ NVMe 4.0
Timeweb 180 ₽/мес 15 ГБ NVMe 4.3
Selectel 200 ₽/мес 1 ядро, 1 ГБ памяти, 10 ГБ NVMe 4.5
AdminVPS 299 ₽/мес 1 ядро, 1 ГБ памяти, 15 ГБ NVMe 4.5

Данные проверены 03.09.2026.

Разница между тарифом за 59 ₽ и за 299 ₽ — это чаще всего не мощность, а тип диска, канал и качество поддержки. Для учебного сайта хватит первой строки, для боевого проекта разумнее смотреть на провайдеров с рейтингом от 4.0: например, карточка RuVDS с отзывами, историей компании и полным списком из десятков тарифов.

Установка nginx на Ubuntu и проверка ответа
После установки сервер отвечает 200 OK и представляется как nginx/1.24.0

Установка nginx из репозитория Ubuntu: пошагово

Дальше идёт основная часть. Все команды выполняются от root или через sudo — префикс, который повышает права обычного пользователя до административных. Если вы вошли как root, sudo можно опускать.

  1. Обновите список пакетов: sudo apt update. Команда не ставит ничего нового, а только скачивает свежий индекс репозиториев — без него apt может предложить устаревшую версию.
  2. Установите пакет: sudo apt install nginx -y. Флаг -y отвечает «да» на вопрос о подтверждении. Скачивается около 700 КБ, установка занимает 10–20 секунд.
  3. Проверьте состояние службы: systemctl status nginx. В выводе должна быть строка active (running). Выход из просмотра — клавиша q.
  4. Проверьте ответ локально: curl -I localhost. Ожидаемый результат — HTTP/1.1 200 OK и заголовок Server: nginx. Флаг -I запрашивает только заголовки, без тела страницы.
  5. Откройте в браузере http://IP-адрес-сервера. Должна появиться страница Welcome to nginx — файл из каталога /var/www/html.

Если на шаге 4 вместо 200 приходит ошибка соединения, служба не запустилась — смотрите последние строки журнала командой journalctl -u nginx -n 20. Если 200 приходит в консоли, но браузер не открывает страницу, дело в фаерволе, и это разбираем ниже.

Сравнение репозитория Ubuntu и nginx.org
Из репозитория Ubuntu приезжает 1.24 — этого хватает большинству сайтов

Репозиторий Ubuntu или nginx.org: какую версию ставить

Штатный apt install nginx ставит версию, замороженную на момент выпуска дистрибутива: в Ubuntu 24.04 это ветка 1.24, в 22.04 — 1.18. Такая версия получает только исправления безопасности, новые возможности в неё не добавляют. Для 90 % сайтов этого достаточно.

Свежая ветка живёт в официальном репозитории nginx.org, и его подключают вручную: добавляют ключ подписи и файл источника в каталог /etc/apt/sources.list.d/. После этого работает тот же apt install nginx. Смысл в этом есть, если нужен HTTP/3, свежие модули или конкретная директива — так называют строку настройки в конфиге — из последних версий.

Критерий Репозиторий Ubuntu Репозиторий nginx.org
Версия на 24.04 1.24 текущая стабильная ветка
Шагов до установки 2 5–6
Обновления вместе с системой отдельным источником
Конфиги сайтов sites-available и sites-enabled только conf.d
Кому подходит сайты, простые прокси HTTP/3, нестандартные модули

Разница в структуре конфигов важнее, чем кажется. Пакет Ubuntu создаёт привычную пару каталогов, а сборка с nginx.org кладёт всё в один каталог /etc/nginx/conf.d/. Инструкции из интернета чаще всего написаны под первый вариант, поэтому новичку проще остаться на нём. Сравнить площадки под конкретную версию системы можно в подборке VPS с Ubuntu 24.04.

Автозапуск и управление службой

После установки из пакета nginx уже добавлен в автозагрузку — при перезагрузке сервера он поднимется сам. Проверить это можно командой systemctl is-enabled nginx: ответ enabled означает, что автозапуск включён. Если пришло disabled, включите его командой systemctl enable nginx.

Управление службой сводится к четырём командам. systemctl start nginx запускает, systemctl stop nginx останавливает, systemctl restart nginx перезапускает с обрывом текущих соединений, а systemctl reload nginx перечитывает конфигурацию без разрыва — именно её используют на рабочем сайте после правок.

Перед перезагрузкой конфига полезно проверить синтаксис: nginx -t. Команда выводит две строки со словами syntax is ok и test is successful. Если в конфиге опечатка, nginx назовёт файл и номер строки, а служба останется работать на старой версии настроек — сайт не упадёт.

Журналы лежат в каталоге /var/log/nginx/: файл access.log хранит все запросы, error.log — ошибки. Смотреть их в реальном времени удобно командой tail -f /var/log/nginx/error.log. Ротацию журналов Ubuntu настраивает сама: система раз в сутки убирает старый файл в архив и удаляет архивы старше 14 дней, так что диск они не переполнят.

Первый сайт: конфиг в sites-available

По умолчанию nginx отдаёт одну тестовую страницу из /var/www/html. Чтобы разместить свой сайт, создают отдельный виртуальный хост — блок настроек, который привязывает домен к каталогу с файлами. Так на одном сервере уживаются десятки сайтов.

Схема простая: файл конфигурации кладут в /etc/nginx/sites-available/, а затем делают на него символическую ссылку в /etc/nginx/sites-enabled/ — это ярлык, который указывает на исходный файл. Первый каталог — склад всех конфигов, второй — список включённых. Чтобы выключить сайт, ссылку удаляют, сам конфиг остаётся на месте.

  1. Создайте каталог сайта: mkdir -p /var/www/example.ru/html. Флаг -p создаёт вложенные папки за один раз.
  2. Положите туда файл index.html хотя бы с одной строкой текста — иначе проверить результат будет нечем.
  3. Создайте файл /etc/nginx/sites-available/example.ru с блоком server: внутри укажите listen 80;, server_name example.ru www.example.ru; и root /var/www/example.ru/html;.
  4. Включите сайт: ln -s /etc/nginx/sites-available/example.ru /etc/nginx/sites-enabled/.
  5. Отключите тестовый хост, чтобы он не перехватывал запросы: rm /etc/nginx/sites-enabled/default.
  6. Проверьте и примените: nginx -t, затем systemctl reload nginx.

Права на каталог должны позволять веб-серверу читать файлы. В Ubuntu nginx работает от пользователя www-data, поэтому владельца назначают командой chown -R www-data:www-data /var/www/example.ru. Ошибка 403 в браузере почти всегда означает, что этот шаг пропущен.

Бесплатный сертификат Let’s Encrypt через certbot

Без сертификата браузер помечает сайт как небезопасный, а поисковые системы понижают его в выдаче. Let’s Encrypt — некоммерческий центр сертификации, который выдаёт сертификаты бесплатно и автоматически. Срок жизни одного сертификата — 90 дней, поэтому продление обязательно автоматизируют.

Ставят всё одной командой: sudo apt install certbot python3-certbot-nginx -y. Второй пакет — плагин, который умеет сам править конфиг nginx. Затем запускают sudo certbot --nginx -d example.ru -d www.example.ru: ключ -d перечисляет домены, на которые выпускают сертификат. Утилита спросит e-mail для уведомлений, проверит домен и добавит в конфиг блок с listen 443 ssl, а заодно настроит переадресацию с HTTP — что делает каждый ключ, разобрано в словарной статье о certbot.

Продление обслуживает системный таймер: certbot запускается дважды в сутки и обновляет сертификат, когда до истечения остаётся меньше 30 дней, то есть примерно каждые 60 дней. Проверить механизм без реального выпуска можно командой certbot renew --dry-run.

Сами файлы сертификата и ключа складываются в каталог /etc/letsencrypt/live/example.ru/, и трогать их вручную не нужно — пути certbot прописывает в конфиг сам. Список выпущенных сертификатов со сроками действия показывает команда certbot certificates. Разбор всех режимов выпуска, включая wildcard — один сертификат сразу на все поддомены, — есть в гайде про установку SSL Let’s Encrypt.

Открыть порты 80 и 443

Сайт может не открываться снаружи даже при работающем nginx: запросы режет фаервол — сетевой фильтр, который решает, какие соединения пускать на сервер. В Ubuntu им управляет утилита ufw, а у части провайдеров есть ещё и сетевой фильтр в панели управления — тогда правило нужно завести в двух местах.

Пакет nginx регистрирует в ufw готовые профили. Команда ufw app list покажет три варианта: Nginx HTTP для порта 80, Nginx HTTPS для 443 и Nginx Full сразу для обоих. Обычно применяют последний: ufw allow 'Nginx Full'. Не забудьте разрешить и SSH командой ufw allow OpenSSH, иначе после включения фаервола вы потеряете доступ к серверу.

Состояние правил показывает ufw status: в списке должны быть строки для 80, 443 и 22. Если порт открыт, а страница снаружи всё равно не грузится, проверьте A-запись домена и убедитесь, что nginx слушает нужный интерфейс. Это видно в выводе команды ss -tlnp | grep nginx: она показывает, какие порты и адреса заняты процессами nginx. Пошаговый разбор с примерами команд собран в материале о том, как открыть порты в Ubuntu.

Частые ошибки

Большинство обращений в поддержку после первой установки повторяются из раза в раз. Ниже — те, что встречаются чаще всего, и способ проверить каждую за минуту.

  • Порт 80 уже занят. Если на сервере стоял Apache, nginx не стартует с ошибкой Address already in use. Освободите порт: systemctl stop apache2 и systemctl disable apache2.
  • Забыли перезагрузить конфиг. Правки в файле не действуют до systemctl reload nginx. Кажется, что настройка не работает, хотя она просто не применена.
  • Не отключён хост default. Он ловит все запросы, и вместо вашего сайта открывается страница Welcome to nginx.
  • Сертификат запрошен до разошедшейся DNS-записи. Certbot вернёт ошибку проверки домена. Дождитесь, пока dig example.ru покажет IP сервера, и повторите.
  • Ошибка 502 после настройки прокси. Приложение не запущено или слушает другой порт. Сверьте адрес в директиве proxy_pass с тем, что показывает ss -tlnp, и перечитайте схему работы обратного прокси.
  • Фаервол включён без правила для SSH. Сессия обрывается, и вход остаётся только через консоль в панели провайдера.

Частые вопросы

Сколько времени занимает установка nginx на Ubuntu? Сама установка пакета — 10–20 секунд, вместе с обновлением индекса apt около 1 минуты. Полный путь до работающего сайта с сертификатом занимает 15–30 минут, и основное время уходит на ожидание DNS-записи, а не на команды.

Какая версия nginx ставится командой apt install? Та, что зафиксирована в репозитории вашего выпуска: в Ubuntu 24.04 это ветка 1.24, в 22.04 — 1.18. Точную версию покажет команда nginx -v. Если нужна свежая ветка, подключают репозиторий nginx.org отдельным источником.

Сколько оперативной памяти нужно серверу под nginx? Сам веб-сервер укладывается в 10–20 МБ на рабочий процесс, поэтому тарифа с 1 ГБ хватает для статики и небольшого прокси. Как только добавляются PHP и база данных, минимум вырастает до 2 ГБ, а для магазина — до 4 ГБ. Тариф с 1 ядром, 1 ГБ памяти и 10 ГБ NVMe стоит, например, от 200 ₽/мес у Selectel.

Можно ли получить сертификат на IP-адрес без домена? Нет, Let’s Encrypt выдаёт сертификаты только на доменные имена. Пока домена нет, сайт работает по HTTP на порту 80, а браузер показывает пометку о незащищённом соединении. Домен второго уровня стоит ориентировочно от 200 ₽ в год.

Что делать, если curl возвращает 200, а браузер не открывает сайт? Значит, nginx работает, но запрос не доходит снаружи. Проверьте правила ufw status, сетевой фильтр в панели провайдера и A-запись домена. В 9 случаях из 10 причина — закрытый порт 80 или 443.

Как понять, что автозапуск включён? Выполните systemctl is-enabled nginx: ответ enabled означает, что служба поднимется после перезагрузки. Проверить наверняка можно командой reboot — сервер вернётся в строй за 20–60 секунд, после чего повторите curl -I localhost.

Нужно ли удалять Apache перед установкой nginx? Удалять необязательно, достаточно остановить его и убрать из автозагрузки, чтобы освободить порт 80. Оба сервера могут сосуществовать, если развести их по разным портам, но новичку такая схема лишняя. Аргументы за каждый вариант мы собрали в сравнении nginx или Apache.

Подойдёт ли для nginx самый дешёвый тариф за 59 ₽ в месяц? Для учебного сайта и лендинга — да, 1 ГБ памяти и 10 ГБ диска хватает с запасом. Для боевого проекта с трафиком смотрите на диск NVMe, ширину канала и рейтинг провайдера от 4.0, иначе экономия обернётся простоем.

Итог

Установка nginx на Ubuntu занимает две команды, а всё остальное время уходит на конфиг сайта, права на каталог и сертификат. Порядок действий один и тот же на любой машине: apt, проверка через systemctl status и curl -I, виртуальный хост в sites-available, затем certbot и открытые порты 80 и 443.

Осталось выбрать площадку. Тарифы с готовыми образами Ubuntu, ценами от 59 ₽/мес и фильтрами по диску и локации собраны в разделе VPS для nginx — там 44 провайдера с рейтингами и отзывами.

Поделиться:
👁 64 просмотров
Марина
Редактор · FREEHOSTING
Главный редактор FREEHOSTING. С 2020 года тестирует VDS, VPS и хостинг-провайдеров — арендует серверы, нагружает их реальными проектами и пишет честные обзоры по итогам. Помогает читателям выбирать хостинг под свои задачи: от Telegram-бота до production-сайта.