302 https to http

holypapa nginx-forum на forum.nginx.org
Ср Июл 6 18:41:27 UTC 2016


Добрый день.
Я использую Nginx 1.9.5.
В конфигурационном файле есть секция для кэширования статического контента в
которой жётко прописаны шаблоны url для кэширования (20 минут).
Вся динамика отдаётся апстримами. Выбор апстрима осуществляется на основе
анализа заголовка X-Forwarded-Proto.
Если X-Forwarded-Proto = http, то передаём на http://upstream1, если https
то на https://upstream2
Апстрим обрабатывает запросы и отвечает либо 200 кодом, либо 302 в
зависимости от его внутренней логики.

Недавно я столкнулся с единичным случаем следующей проблемы:
Неожиданно nginx стал возвращать клиентам  на запрос POST
https://my.domain/test вместо 302 кода с https://my.domain/next_step 302 код
c редиректом на http://my.domain/test. Данные запросы всегда проксировались
на апстримы, и уже они отвечали. В этом же случае запроса к апстримам не
происходило, поле $upstream_addr содержало значение "-". Через 18 часов
ситуация нормализовалась.

Создалось ощущение что NGINX просто отдавал ответ из кэша, хотя для данного
локейшена кэш не используется, да и для POST запросов он не возможен.
Проблема была обнаружена уже постфактум.

Может кто-то сталкивался с чем-то подобным.

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,268127,268127#msg-268127



Подробная информация о списке рассылки nginx-ru