Диагностика Nginx
Диагностика Nginx, HTTPS, 4xx, 5xx, reverse proxy и WebSocket без случайных перезапусков
Начинайте с точного URL, времени с часовым поясом, кода ответа и того, воспроизводится ли проблема напрямую и через Cloudflare. Один код может создаваться браузером, Cloudflare, Nginx, SSR или Laravel.
Быстрая последовательность
Проверьте DNS и выбранный адрес сервера.
Проверьте сертификат и имя домена.
Выполните
sudo nginx -t.Найдите vhost и
locationчерезsudo nginx -T.Проверьте целевой внутренний процесс локально.
Сопоставьте журнал Nginx с журналом приложения.
Проверьте последнее изменение конфигурации или процесса.
Для проверки origin без смены публичного DNS используйте собственный домен и адрес:
curl --resolve ваш_домен:443:<IP_ORIGIN> -I https://ваш_домен/
curl --resolve app.ваш_домен:443:<IP_ORIGIN> -I https://app.ваш_домен/<IP_ORIGIN> подставляет уполномоченный администратор. Не публикуйте команду с рабочим адресом в открытом обращении.
Типовые признаки
404
Какой vhost и location выбраны, существует ли маршрут или файл
413
Лимит Nginx, затем PHP и приложение
429
WAF, rate limit, приложение и повторные запросы клиента
500
Журнал Laravel/PHP и последнее изменение кода или окружения
502
Состояние SSR, PHP-FPM или Reverb и адрес upstream
504
Длительность upstream, очередь, внешнее обращение и тайм-аут
Цикл редиректов
HTTPS между Cloudflare и origin, forwarded protocol и правила redirect
Старая страница
Cloudflare cache, browser cache, SSR и версия статических файлов
Не увеличивайте тайм-аут как первое действие. Если upstream завис из-за базы или внешнего сервиса, увеличение скрывает причину и удерживает больше соединений.
Журналы
Используйте системный журнал службы и журналы активного виртуального хоста. На существующем сервере с FASTPANEL их также можно открыть из карточки сайта. Сначала ограничьте временной интервал и URL, иначе полезная строка потеряется в объёме:
Не отправляйте полный access log третьей стороне: он может содержать IP, параметры URL и идентификаторы заявок. Подготовьте минимальный очищенный фрагмент.
WebSocket не подключается
Проверьте процесс Reverb, локальный порт, путь, сертификат, заголовки Upgrade, Cloudflare WebSockets и событие WAF. Если обычный HTTPS работает, это не подтверждает исправность WebSocket.
После исправления откройте тестовую заявку в двух независимых сессиях. Сообщение и индикатор должны появиться без обновления страницы. Затем убедитесь, что fallback не маскирует разрыв постоянного соединения.
Сертификат не выпускается
Проверьте A/AAAA, доступность 80 и 443, CAA, режим проксирования Cloudflare и выбранные имена сертификата. Устаревшая AAAA-запись часто отправляет проверку на другой сервер.
Не отключайте проверку сертификата и не переходите на Flexible. Если используется Origin CA, проверяйте соединение через Cloudflare; для прямого браузерного доступа установите публично доверенный сертификат.
Безопасное восстановление
Если сбой появился сразу после правки, верните только изменённый файл, выполните nginx -t и reload. Если конфигурация корректна, но upstream недоступен, восстанавливайте конкретный процесс через его менеджер. Перезапуск всего сервера оставляйте последней мерой после сохранения журналов и проверки автозапуска.
Последнее обновление
Это было полезно?