Как использовать Haproxy для пересылки https-запросов через http

У меня есть настройка haproxy с несколькими серверами haproxy, которые маршрутизируют кластер серверов приложений. Я бы хотел, чтобы haproxy выполнял все завершение ssl.

Прямо сейчас https-запросы пересылаются на серверы приложений как https. Итак, что я хотел бы:

user <-https-> Haproxy <-http-> Application
user <-http->  Haproxy <-http-> Application

Я видел несколько конфигураций, которые полностью посвящены использованию haproxy, чтобы заставить пользователя обновить схему до https, и тогда вся система будет работать по https. Это не то, что я ищу - я хочу, чтобы серверы приложений всегда были в http.

0
задан 4 January 2017 в 01:17
1 ответ

Кажется, я нашел ответ:

defaults
        option  forwardfor
        option  http-server-close


frontend www-http
        bind :80
        reqadd X-Forwarded-Proto:\ http
        default_backend my-backend

frontend www-https
        bind :443 ssl crt /etc/haproxy/ssl/oroboro.com.pem
        reqadd X-Forwarded-Proto:\ https
        default_backend my-backend

Добавьте эти две опции по умолчанию. forwardfor добавляет заголовки X-Forwarded-For. Затем создайте два фронта, один привязанный к http, а другой к https, вот что делают привязывающие линии. На фронтенде https мы поместили параметры для расшифровки ssl. После этого haproxy будет переадресовывать запросы по http.

Заголовок X-Forwarded-Proto, чтобы ваш сервер приложений мог знать, какой протокол используют пользователи в случае, если вы хотите сгенерировать страницу по-другому для пользователей, не использующих https (например, не отображать определенное содержимое)

.
1
ответ дан 4 December 2019 в 16:23

Теги

Похожие вопросы