Как запустить свой первый веб-сервер на Nginx в Linux: пошаговое руководство для новичков

Схема запуска веб-сервера Nginx в Linux: от команд в терминале до открытой страницы в браузере
Чтобы запустить веб-сервер на Nginx в Linux с нуля, нужно выполнить пять шагов: обновить список пакетов командой sudo apt update, установить сам Nginx через sudo apt install nginx, запустить и добавить его в автозагрузку командами sudo systemctl start nginx и sudo systemctl enable nginx, разрешить веб-трафику проходить через файрвол (sudo ufw allow 'Nginx Full') и, наконец, открыть в браузере IP-адрес сервера, чтобы увидеть приветственную страницу Nginx — это будет означать, что сервер работает. Весь процесс на чистом сервере Ubuntu занимает 5−10 минут и не требует опыта администрирования: команды выполняются по очереди в терминале, а любая ошибка на промежуточном шаге видна сразу по сообщению системы. Ниже — подробная инструкция для Ubuntu/Debian с пояснением каждой команды, вариант для CentOS/ RHEL, а также разбор типичных ошибок новичков и советы по первым настройкам после установки.

Что такое Nginx и зачем он нужен новичку

Nginx (произносится «энджин-икс») — это программа-веб-сервер: она принимает запросы от браузеров по HTTP/HTTPS и отдаёт в ответ файлы сайта или данные приложения. Для новичка, который только начинает разбираться с Linux и серверами, Nginx — хороший первый выбор по трём причинам:
  • Простая установка
    Пакет есть в стандартных репозиториях большинства дистрибутивов Linux, установка занимает одну команду
  • Понятная конфигурация
    Настройки хранятся в обычных текстовых файлах, изменения применяются мгновенно после перезагрузки конфигурации
  • Низкое потребление ресурсов
    Nginx обрабатывает запросы асинхронно в одном потоке, поэтому спокойно работает даже на минимальном виртуальном сервере с 512 МБ — 1 ГБ оперативной памяти

Что понадобится перед началом

  • Сервер или виртуальная машина с Linux (в этом руководстве — Ubuntu 24.04, для CentOS/RHEL команды указаны отдельно)
  • Доступ к терминалу — напрямую или по SSH
  • Пользователь с правами sudo (root-доступ администратора)
  • Пять-десять свободных минут

Шаг 1. Обновите список пакетов системы

Перед установкой любого нового ПО в Linux стоит обновить локальный кэш списка доступных пакетов, чтобы система знала об актуальных версиях
sudo apt update
Команда ничего не устанавливает — она лишь синхронизирует список пакетов с репозиториями Ubuntu. Это стандартный первый шаг перед установкой чеголибо через apt.

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

sudo apt install nginx -y
Флаг -y автоматически подтверждает установку без дополнительного вопроса «Продолжить? [Y/n]». Пакет Nginx и его зависимости уже есть в стандартных репозиториях Ubuntu, поэтому дополнительные источники пакетов подключать не нужно.

Проверить, что установка прошла успешно, можно командой:
nginx -v

Шаг 3. Запустите Nginx и добавьте его в автозагрузку

После установки Nginx в Ubuntu обычно запускается автоматически, но правильная практика — явно проверить и настроить это:
sudo systemctl start nginx # запустить сервер сейчас
sudo systemctl enable nginx # запускать автоматически при перезагрузке сервера
sudo systemctl status nginx # проверить, что сервер работает
В выводе systemctl status должна быть строка active (running) зелёного цвета — это значит, что Nginx запущен и работает

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

Команда
Что делает
sudo systemctl start nginx
Запустить сервер
sudo systemctl stop nginx
Остановить сервер
sudo systemctl restart nginx
Полностью перезапустить (обрывает активные соединения)
sudo systemctl reload nginx
Применить изменения конфигурации без остановки сервера
sudo systemctl status nginx
Проверить текущее состояние

Шаг 4. Настройте файрвол, чтобы разрешить веб-трафик

Если на сервере включён файрвол UFW (стандартный для Ubuntu), он по умолчанию блокирует входящие соединения на портах 80 (HTTP) и 443 (HTTPS). Nginx при установке автоматически регистрирует в UFW несколько готовых профилей:
sudo ufw allow 'Nginx HTTP' # открыть только порт 80
sudo ufw allow 'Nginx HTTPS' # открыть только порт 443
sudo ufw allow 'Nginx Full' # открыть оба порта сразу — рекомендуется для начала
Проверить, что правило применилось:
sudo ufw status
Важно: если вы подключаетесь к серверу по SSH и ещё не разрешили SSHтрафик в UFW, перед включением файрвола обязательно выполните sudo ufw allow OpenSSH — иначе рискуете потерять доступ к серверу

Шаг 5. Проверьте работу сервера в браузере

Узнайте IP-адрес сервера:
hostname -I
Откройте в браузере адрес ваш_IP_адрес. Если всё сделано правильно, вы увидите стандартную приветственную страницу с текстом «Welcome to nginx!» — это значит, что веб-сервер успешно установлен и работает.

Проверить работу можно и прямо из терминала, без браузера:
curl http://localhost
Команда должна вернуть HTML-код приветственной страницы Nginx.

Установка Nginx на CentOS/RHEL: чем отличаются команды

Если вы используете дистрибутив на основе RHEL (CentOS Stream, AlmaLinux, Rocky Linux), вместо apt используется пакетный менеджер dnf, а вместо UFW — firewalld:
sudo dnf install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
Логика та же, что и в Ubuntu: установить пакет, запустить сервис, открыть порты в файрволе.

Где лежат файлы Nginx и что с ними делать дальше

После установки полезно знать, где искать конфигурацию и файлы сайта:
/etc/nginx/nginx.conf — главный конфигурационный файл
/etc/nginx/sites-available/ — конфигурации отдельных сайтов (Ubuntu/Debian).
/etc/nginx/sites-enabled/ — символические ссылки на активные конфигурации сайтов
/var/www/html/ — папка по умолчанию, откуда Nginx отдаёт файлы сайта
/var/log/nginx/access.log и /var/log/nginx/error.log — журналы запросов и ошибок
Чтобы заменить стандартную приветственную страницу на свою, отредактируйте файл /var/www/html/ index. html любым текстовым редактором, например nano:
sudo nano /var/www/html/index.html
После любого изменения конфигурации (не файлов сайта, а именно .conf-файлов) обязательно проверяйте синтаксис перед перезапуском:
sudo nginx -t
Если тест прошёл успешно, вы увидите syntax is ok и test is successful — только после этого стоит выполнять sudo systemctl reload nginx.

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

  • Забыли открыть порты в файрволе
    Сервер установлен и запущен, но страница не открывается в браузере — почти всегда причина в UFW/firewalld, который блокирует порт 80
  • Перепутали restart и reload
    restart разрывает все текущие соединения с сервером, reload применяет изменения конфигурации без разрыва — для рабочего сервера с посетителями предпочтителен reload
  • Не проверили конфигурацию перед перезапуском
    Ошибка в конфигурационном файле после restart или reload может привести к тому, что Nginx не запустится вообще — команда sudo nginx -t предотвращает это
  • Путают адрес сайта с адресом сервера
    Если у сервера ещё нет привязанного домена, к нему нужно обращаться по IP-адресу, а не по несуществующему доменному имени.
  • Забыли про SELinux на CentOS/RHEL
    На системах с включённым SELinux иногда требуется дополнительно разрешить сетевые соединения для Nginx (sudo setsebool -P httpd_can_network_connect 1), иначе сервис может работать некорректно.

Что делать после первого запуска

  • Настроить отдельный server block (виртуальный хост), если планируете разместить несколько сайтов на одном сервере
  • Подключить бесплатный SSL-сертификат через Certbot и Let’s Encrypt, чтобы сайт открывался по HTTPS
  • Настроить показ логов и мониторинг, чтобы видеть, кто и как обращается к серверу
  • Изучить базовые параметры производительности и безопасности (лимиты на размер запроса, скрытие версии Nginx в заголовках ответа)

FAQ: частые вопросы про ИИ и Ansible-плейбуки

Читайте также: