1

Я изучаю возможность использования Windows Server 2016 для группы веб-серверов, которые находятся за балансировщиком нагрузки, использующим разгрузку SSL.

Для меня самое большое преимущество Windows Server 2016 по сравнению с 2012 годом заключается в том, что можно использовать протокол HTTP/2. Однако, поскольку HTTP/2 обычно реализуется против HTTPS, я обеспокоен тем, что запросы не будут распознаваться как HTTPS, поскольку они поступают как HTTP (хотя и с заголовком x-forwarded-proto ). Я посмотрел и нашел несколько ресурсов, но конкретных доказательств не так много.

Кто-нибудь знает, будет ли IIS поддерживать эту настройку и по-прежнему отправлять ответ через HTTP/2, или весь трафик просто вернется к HTTP/1.1? Есть ли способ настроить /обмануть (!) IIS использовать HTTP/2 для запроса, который может показаться небезопасным?

Благодарю.

Изменить: Чтобы уточнить, балансировщик нагрузки будет отправлять x-forwarded-proto:https на сервер, но запрашивающее приложение считает его небезопасным из-за разгрузки SSL.

1 ответ1

1

Как указывалось в сообщении в блоге, на которое вы ссылались (и подтверждалось, когда оно превратилось в официальный документ здесь), IIS будет использовать протокол HTTP/2 только тогда, когда установлено соединение TLS с сервером IIS.

Как реализовано сегодня в IIS 10, HTTP/2 идентифицируется с помощью ALPN во время квитирования TLS. Если нет ни ALPN, ни TLS, не будет HTTP/2. Посмотрите этот доклад BUILD 2015 года, начинающийся примерно с 5'06 ", и имейте в виду, что IIS не реализует механизм обновления HTTP/1.1 (как указано в 8'46" в видео).

В вашем сценарии это почти наверняка тот случай, когда балансировщик нагрузки установит четкие TCP-соединения и отправит HTTP/1.1-запросы на внутренние серверы. К тому времени, когда IIS даже может увидеть заголовок x-forwarded-proto , соединение уже установлено и протокол HTTP/1.1 уже определен.

Теперь, возможно, ваш балансировщик нагрузки может поддерживать сам HTTP/2, поэтому браузеры ваших конечных пользователей смогут мультиплексировать запросы и ответы с балансировщиком нагрузки, в то время как он преобразует их в запросы HTTP/1.1 и ответы на ваши внутренние серверы. ,

Также возможно, что ваш балансировщик нагрузки может устанавливать TLS-соединения с внутренними серверами и использовать HTTP/2, но это в основном будет препятствовать разгрузке SSL.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .