Как настроить ротацию логов Nginx для предотвращения переполнения диска

    Опубликовано: 02.10.2026 • Время чтения: 1 мин.

    Высоконагруженные веб-серверы Nginx непрерывно записывают каждую входящую HTTP-сессию в файл access.log. За несколько месяцев непрерывной работы неротируемый файл журнала может разрастись до десятков гигабайт, полностью заполнив системный раздел сервера (/var/log).

    При переполнении диска операционная система аварийно останавливает базы данных и процессы записи. Настройка системного демона Logrotate автоматизирует сжатие старых логов в компактные gzip-архивы и удаляет устаревшие файлы по заданному расписанию.

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

    ❓ Теряются ли запросы во время ротации логов?

    Нет, сигнал USR1 заставляет Nginx атомарно переоткрыть файловый дескриптор без прерывания обработки пользовательских запросов.

    ❓ Можно ли полностью отключить access.log для статики?

    Да, в секции `location ~* \.(jpg|css|js)$` можно указать директиву `access_log off;` для экономии места.

    ❓ Почему размер диска не уменьшился после удаления лога вручную через rm?

    Nginx держит удаленный файл открытым. Чтобы освободить место, выполните команду `systemctl reload nginx`.

    👨‍💻

    Об авторе: Редакция Гайдотеки

    Инструкция подготовлена специалистами портала. Мы лично проверяем каждый способ оплаты и настройки программ перед публикацией. Если метод перестает работать — мы обновляем гайд.