Я использую HAProxy 1.6
Я заставляю использовать https. Поэтому в моем бэкэнде я перенаправляю http на https. Для этого я использую следующий код:
backend my-app-name
redirect scheme https if !{ ssl_fc }
[...]
Это работает хорошо, но если мой http-запрос выполняется с использованием метода POST, кажется, что схема перенаправления изменит метод на GET.
Я видел это в документация HAProxy Что касается перенаправления HTTP, мы можем изменить код HTTP на 308. Но я не могу изменить поведение моего текущего приложения.
Как я могу перенаправить на https с помощью HAProxy и сохранить исходный HTTP-метод?
как вы почти сказали, вы можете сделать следующее:
backend my-app-name
redirect scheme https code 308 if !{ ssl_fc }
haproxy вернет 308 (вместо 302). Я не знаю, как задействовано ваше приложение. Если он находится за haproxy, он никогда не заметит первые запросы, отличные от https. И, например, любой браузер выполнит второй запрос через https и тот же HTTP-глагол, то есть сохранит POST.