FAQ

Установка и настройка Nginx на Debian 12 (Bookworm)

Artikel suchen

Установка и настройка Nginx на Debian 12 (Bookworm)

4 Views

Пошаговое руководство: установка Nginx на Debian 12, управление через systemd, виртуальный хост и HTTPS с Let’s Encrypt. Для клиентов Boxis и системных администраторов.

Установка и настройка Nginx на Debian 12 (Bookworm)

Обновлено: март 2026
Время чтения: ~12 минут
Аудитория: системные администраторы и опытные пользователи серверов Debian 12.

Nginx — высокопроизводительный HTTP-сервер и обратный прокси. В Debian 12 (Bookworm) он хорошо сочетается с systemd и подходит для работы перед PHP, Node.js или upstream API. В этом руководстве — чистая установка, базовые рекомендации по безопасности, минимальный виртуальный хост и при необходимости TLS с Let’s Encrypt.


Что вы получите

  • Установленный из репозиториев Debian Nginx и проверенный сервис.
  • Открытые порты HTTP/HTTPS (пример с UFW).
  • Отдельный корень сайта и собственный блок server.
  • Опционально: сертификат Let’s Encrypt и автоматическое продление.

Предварительные требования

  • Сервер Debian 12 с доступом по SSH.
  • Учётная запись с правами sudo (не рекомендуется постоянно работать под root).
  • DNS-имя (например, app.example.com), указывающее на публичный IP, если нужны HTTPS и автообновление сертификата.
  • Базовые навыки работы в консоли.

Примечание Boxis: на управляемом хостинге Boxis изменения на уровне сервера могут быть ограничены; перед правками веб-стека в общих средах обратитесь в поддержку.


1. Обновление индекса пакетов и установка Nginx

sudo apt update
sudo apt install -y nginx

Debian поставляет проверенную сборку Nginx; сторонние репозитории нужны только при необходимости специфических модулей.


2. Межсетевой экран: HTTP и HTTPS (UFW)

Если включён UFW:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
sudo ufw status

При использовании nftables или облачных групп безопасности откройте TCP 80 и TCP 443 там.


3. Управление Nginx через systemd

Действие Команда
Автозапуск sudo systemctl enable nginx
Запуск sudo systemctl start nginx
Статус sudo systemctl status nginx
Перезагрузка конфигурации sudo systemctl reload nginx
Проверка синтаксиса sudo nginx -t

После правок конфигурации всегда выполняйте nginx -t перед перезагрузкой.


4. Расположение конфигурации в Debian

Обычная схема:

  • Основной файл: /etc/nginx/nginx.conf
  • Сайты: /etc/nginx/sites-available/ (ссылки в sites-enabled/)
  • Дополнительно: /etc/nginx/conf.d/*.conf

Предпочтительно использовать sites-available / sites-enabled, чтобы включать и отключать сайты без удаления файлов.


5. Виртуальный хост (блок server)

Пример: хост app.example.com, файлы в /var/www/app.example.com/html.

5.1 Каталоги и тестовая страница

sudo mkdir -p /var/www/app.example.com/html
echo '<!DOCTYPE html><html><head><meta charset="utf-8"><title>OK</title></head><body><h1>It works</h1></body></html>' | sudo tee /var/www/app.example.com/html/index.html
sudo chown -R www-data:www-data /var/www/app.example.com

5.2 Файл конфигурации

Создайте /etc/nginx/sites-available/app.example.com.conf:

server {
    listen 80;
    listen [::]:80;
    server_name app.example.com;

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

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

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

sudo ln -sf /etc/nginx/sites-available/app.example.com.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Проверьте в браузере или командой curl -I http://app.example.com.


6. HTTPS с Let’s Encrypt

sudo apt install -y certbot python3-certbot-nginx

Получение сертификата (укажите свой e-mail и домен):

sudo certbot --nginx -d app.example.com -m vy@example.com --agree-tos --non-interactive

Проверка продления:

sudo certbot renew --dry-run

Обычно продление выполняет таймер systemd или cron; проверьте systemctl list-timers | grep certbot.


7. Рекомендации по эксплуатации

  • После изменения конфигурации предпочитайте reload, а не полный restart, если это возможно.
  • При высокой нагрузке ведите отдельные логи для сайтов (access_log / error_log).
  • server_tokens off;, если политика безопасности позволяет.
  • Для PHP и приложений: согласованный fastcgi_pass к PHP-FPM или proxy_pass к upstream.
  • Резервное копирование каталога /etc/nginx/ перед крупными изменениями.

8. Краткая диагностика

Симптом Что проверить
502 Bad Gateway Недоступен backend; неверный proxy_pass / fastcgi_pass.
403 Forbidden Права на каталоги; путь root; SELinux/AppArmor.
Конфигурация не применяется sudo nginx -t и исправление указанных строк.
Ошибка продления сертификата DNS по-прежнему указывает на этот сервер; порт 80 доступен для HTTP-01.

9. Итог

Вы установили Nginx на Debian 12, открыли веб-порты, создали виртуальный хост и при необходимости включили HTTPS с помощью Certbot. В продакшене дополнительно настройте логирование, ограничение запросов и мониторинг upstream-сервисов.


Связанные темы

  • Поиск в базе знаний Boxis: /{lang}/knowledgebase/search/
  • Хостинг и DNS: категория Хостинг и домены, когда доступна.

Общее руководство; команды могут отличаться в зависимости от образа системы и настроек.

Was this article helpful?
Views: 4