Я использую 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.