Nginx живая лаборатория запросов
Браузер → Nginx → Node.js

Один запрос. Видимый результат.

Нажимайте кнопки и сравнивайте настоящие HTTP-ответы: Nginx кеширует каталог, меняет URI, ограничивает частоту и передаёт поток событий.

Локальный учебный стенд. Все данные вымышленные, внешние сервисы не вызываются. Скорость сети здесь не оценивается.

Кеш: MISS, HIT и BYPASS

Первый запрос к новой серии попадёт в Node.js. Повторный в течение 10 секунд должен получить тот же каталог из кеша. Учебные Authorization или Cookie обходят чтение и запись кеша.

Здесь появится ответ сервера.

TTL — 10 секунд. Новая серия меняет query string, чтобы не удалять общий кеш. Авторизация в опыте условная: настоящего входа в аккаунт нет.

Какой путь получил Node.js

В первом маршруте proxy_pass сохраняет URI. Во втором завершающий / заменяет совпавший префикс.

Сравните поле url.

X-Request-ID в заголовке связывает ответ с JSON-строкой access log.

Статусы, которые можно объяснить

Запросы выполняются только к этому стенду. Нажатие ограничителя создаёт 8 коротких обращений; часть получит 429. Через несколько секунд опыт можно повторить.

Открыть SPA-маршрут ↗
HTTP-статус, request ID и ответ.

Поток через Nginx

Пять событий приходят от Node.js постепенно. Для этого маршрута буферизация выключена. После завершения соединение закрывается.

Здесь появятся события.

Где находятся доказательства

В терминале выполните docker compose logs --tail=30 nginx. Сравните request_id с ответом, status с HTTP-кодом, cache с HIT/MISS/BYPASS, upstream_time со временем ответа приложения. Чувствительные заголовки в учебный access log не записываются.

Текстовый файл для gzip