Как настроить веб-сервер Nginx на VPS?

В статье рассмотрим:

  • установку Nginx на Ubuntu;
  • структуру каталогов и конфигураций;
  • создание сайта через server block;
  • настройку index-файлов и mime-типов;
  • проверку синтаксиса и перезапуск службы;
  • разбор ошибок 403, 404, 502;
  • как включить автозапуск и логи.

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

Начнём с установки последней версии Nginx из репозиториев Ubuntu.

sudo apt update
sudo apt install -y nginx

Проверяем статус службы:

sudo systemctl status nginx

Проверяем, запущен ли сервер:

curl http://127.0.0.1
Установка Nginx на Ubuntu

Структура конфигурации Nginx

После установки важно понимать, где находятся файлы Nginx:

/etc/nginx/
 ├── nginx.conf                # основной конфиг
 ├── sites-available/          # доступные сайты
 ├── sites-enabled/            # включённые сайты
 ├── snippets/                 # дополнительные фрагменты
 └── conf.d/                   # дополнительные конфиги

Сайты подключаются через sites-enabled, обычно с помощью символической ссылки.

Структура каталогов Nginx

Создание собственного сайта (server block)

Создадим сайт mysite:

sudo nano /etc/nginx/sites-available/mysite

Минимальная конфигурация:

server {
    listen 80;
    server_name _;

    root /var/www/mysite;
    index index.html index.htm;

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

Создаём папку сайта:

sudo mkdir -p /var/www/mysite

Добавляем тестовый файл:

echo '<h1>Работает!</h1>' | sudo tee /var/www/mysite/index.html
Пример server block Nginx

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

Создаём симлинк:

sudo ln -s /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled/

Проверяем конфигурацию:

sudo nginx -t

Перезапускаем Nginx:

sudo systemctl reload nginx
Включение сайта в Nginx

Настройка прав доступа и владельцев

Чтобы сайт работал корректно, права должны быть такими:

sudo chown -R www-data:www-data /var/www/mysite
sudo chmod -R 755 /var/www

Если забыть сменить владельца, можно получить ошибку 403 Forbidden.

Права доступа Nginx

Настройка MIME-типов

Если сервер отдаёт CSS/JS с неправильным MIME-типом, проверьте файл:

/etc/nginx/mime.types

Добавить MIME-тип можно вручную:

text/markdown md;
Настройка MIME типов Nginx

Логи Nginx

Ошибки и доступы находятся здесь:

/var/log/nginx/access.log
/var/log/nginx/error.log

Пример просмотра ошибок:

tail -f /var/log/nginx/error.log
Просмотр логов Nginx

Типичные ошибки Nginx и решения

1. Ошибка 403 Forbidden

  • неверные права: chmod 755
  • неверный владелец: chown www-data:www-data
  • отсутствует index-файл в корне сайта
  • папка сайта пуста

2. Ошибка 404 Not Found

  • неправильный путь в директиве root;
  • ошибка в try_files;
  • файл реально отсутствует.

3. Ошибка 502 Bad Gateway

Причины:

  • неработающий PHP-FPM;
  • неверный путь к сокету;
  • ошибка в конфигурации fastcgi.

Проверить PHP-FPM:

systemctl status php8.2-fpm

Автозапуск и управление сервисом

sudo systemctl enable nginx
sudo systemctl restart nginx
sudo systemctl stop nginx
sudo systemctl reload nginx

Команда reload подгружает конфигурацию без остановки сервера.

Итоги

  • Установили и запустили Nginx.
  • Разобрали структуру конфигурации.
  • Создали server block и включили сайт.
  • Настроили права доступа.
  • Разобрали логи и типичные ошибки.
  • Проверили MIME-типы и управление сервисом.

Вывод: Nginx — быстрый и гибкий сервер, идеально подходящий для работы на VPS. Зная основы конфигурации, можно легко запускать любые веб-проекты.