Системный журнал — практичная база знаний по VPS и Linux
Nginx • logs • journalctl

Логи nginx и journalctl: как быстро найти ошибку

Если nginx не работает, браузер показывает только итог: 403, 404, 500 или 502. Настоящая причина почти всегда находится в error_log nginx или journalctl.

Сначала nginx -t

Перед перезапуском nginx всегда проверяйте конфиг. Это быстрее, чем искать проблему после неудачного reload.

nginx -t

Если есть ошибка, nginx обычно указывает файл и строку. Исправляйте именно её, а не весь конфиг целиком.

Error log

Error log показывает проблемы с правами, отсутствующими файлами, upstream, сертификатами, синтаксисом и доступом к backend.

tail -n 100 /var/log/nginx/error.log

Access log

Access log полезен для понимания запросов: какие URL открывают, какие коды ответа возвращаются, какие боты ходят по сайту и есть ли повторяющиеся ошибки.

tail -f /var/log/nginx/access.log

Journalctl

Если nginx не стартует как systemd-служба, смотрите journalctl. Там часто видна причина: занятый порт, ошибка в конфиге, отсутствующий файл сертификата.

journalctl -u nginx --no-pager -n 80

Типовые коды ошибок

  • 403 — нет прав, нет index-файла или запрещён доступ;
  • 404 — неверный root, отсутствует файл или ошибка в try_files;
  • 500 — ошибка приложения или backend;
  • 502 — nginx не может достучаться до backend;
  • bind error — порт уже занят другим процессом.

Проверка занятых портов

ss -tulpn | grep -E ':80|:443'

Если порт 80 занят не nginx, standalone-выпуск сертификата или запуск nginx завершится ошибкой.