
У меня есть конфигурация Nginx, которая перенаправляет 307 с http на https. Существуют клиентские приложения, которые подключаются к http и отправляют данные через запросы POST. Клиенты — это службы .Net, использующие HttpWebRequest. Использование простого перенаправления 301 приводит к тому, что данные POST отбрасываются из запроса.
У меня работает перенаправление 307 в локальной тестовой среде, но при развертывании на производственном сервере сообщение о перенаправлении искажается, и клиенты выдают исключение.
Вот рабочий ответ, который я получаю в своей тестовой среде:
И вот что я получаю от производственной среды
Вы видите, как пакет выглядит по-другому, что может быть причиной разных ответов? Старая версия nginx?
решение1
Версии nginx до 1.1.16 не поддерживали должным образом возврат ответов 307.
В соответствующей части журнала изменений говорится следующее:
Changes with nginx 1.1.16 29 Feb 2012
*) Feature: the "return" and "error_page" directives can now be used to
return 307 redirections.
Я рекомендую вам принести ваш производственный (и ваш сервер разработки!)до настоящего времениесли вам нужна эта функциональность. nginx 1.0.5 на данный момент очень устарел.