Заметки: Передача имени из SNI на upstream в Nginx

Передача имени из SNI на upstream-серверы может потребоваться в том случае, если бэкэнд-приложение жестко завязано на имени сервиса. В этом случае необходимо изменить ряд настроек по умолчанию на Nginx


Если вам интересна тематика Debian и связанных с ним приложений, рекомендую обратиться к тегу Debian на моем блоге.


Передача имени ресурса из SNI

В статье Несколько сертификатов на Nginx я рассматривал процесс настройки обратного прокси Nginx таким образом, чтобы он раскидывал запросы к разным ресурсам, каждый из которых имеет свое уникальное имя и свой отдельный сертификат. В этой статье я расскажу об одном нюансе работы данного механизма.


Предлагаю ознакомиться с другими статьями про Nginx на моем блоге:

Приятного чтения!


Теория

Несмотря на то, что Nginx распределяет запросы пользователей по бэкэнд-серверам исходя из имени ресурса в SNI, на бэкэнды он этот параметр по умолчанию не передает. То есть, бэкэнд вероятнее всего увидит обращение по его собственному ip-адресу, а не красивый fqdn. Все бы ничего, но для некоторых сервисов (например Windows Server WAP) такое поведение может быть нежелательным и они будут обрывать соединение (RST, ACK) сразу после TLS Client Hello от Nginx. Вот как это выглядит в WireShark:

Полный вывод сессии в текстовом формате:

Если включить дебаг в Nginx, то можете получать подобные сообщения:

Примечание: пример выше — строка из лога общения обратного прокси на Nginx с Windows Server WAP, через который опубликован сервис AD FS.

В нем содержится как причина разрыва соединения — peer closed connection in SSL handshake (104: Connection reset by peer) while SSL handshaking to upstream — так и конечный URL, который дошел до бэкэнд-сервера — https://10.16.1.51:443/adfs/ls/idpinitiatedsignon.htm. Итого, наша задача — передавать на upstream-серверы имя ресурса, по которому изначально обращается клиент.

Настройки

Первой и самой главной опцией, разрешающей передачу имени ресурса на upstream-серверы, является proxy_ssl_server_name 1. Необходимо выставить её в значение on и определить имя ресурса в директиве proxy_pass. Выглядеть это будет следующим образом (это первый вариант):

Второй вариант заключается в переопределении имени ресурса в нужной вам секции конфигурации Nginx. Для этого нужны параметры:

  • proxy_ssl_name 2 — переопределяет имя сервера;
  • proxy_set_header 3 — переопределяет необходимые поля заголовка запроса. В нашем случае понадобится заголовок Host.

В моем случае устанавливать нужное имя ресурса логично в секции location {}. Итак, получаем:

Как итог — сервис работает нормально.

comments powered by HyperComments
1basketball
2022-06-18 18:21:06
<strong>3championships</strong>
phd thesis vs dissertation
2022-07-05 15:45:09
<strong>dissertation proposal sample https://professionaldissertationwriting.org/</strong>
english dissertation help
2022-07-05 20:38:46
<strong>writing a master's dissertation https://helpwithdissertationwritinglondon.com/</strong>
help writing
2022-07-06 00:21:08
<strong>dissertation express https://dissertationwritingcenter.com/</strong>
whats a dissertation
2022-07-06 01:00:59
<strong>doctoral dissertation help https://dissertationhelpexpert.com/</strong>
dissertation help service
2022-07-06 03:50:13
<strong>masters dissertation writing services uk https://accountingdissertationhelp.com/</strong>
cheap dissertation writing services
2022-07-06 07:44:16
<strong>dissertation proposal example https://examplesofdissertation.com/</strong>
what is a dissertation
2022-07-06 10:46:59
<strong>help tutor https://writing-a-dissertation.net/</strong>
dissertation writing advice
2022-07-06 11:40:32
<strong>best dissertation writing services uk https://bestdissertationwritingservice.net/</strong>
uf dissertation format
2022-07-06 16:11:51
<strong>writing an abstract for a dissertation https://businessdissertationhelp.com/</strong>
dissertation online help
2022-07-06 16:51:43
<strong>dissertation writing and editing https://customdissertationwritinghelp.com/</strong>
dissertations writing
2022-07-06 20:47:45
<strong>dissertation chapters https://writingadissertationproposal.com/</strong>
all but dissertation
2022-07-06 23:48:41
<strong>order a dissertation https://dissertationhelpspecialist.com/</strong>
dissertation chapters
2022-07-07 02:52:51
<strong>bestdissertation https://dissertationhelperhub.com/</strong>
data analysis dissertation help
2022-07-07 04:58:12
<strong>masters dissertation writing services uk https://customthesiswritingservices.com/</strong>
online casino spanish
2022-07-25 18:58:52
<strong>pa online casino apps https://download-casino-slots.com/</strong>
goldennugget casino online
2022-07-25 21:12:51
<strong>online casino play for real money https://firstonlinecasino.org/</strong>
online casino live
2022-07-26 00:19:03
<strong>pa online casino no deposit bonus https://onlinecasinofortunes.com/</strong>
live casino games online
2022-07-26 05:37:13
<strong>river belle online casino https://trust-online-casino.com/</strong>
best online casino promotions
2022-07-26 08:19:53
<strong>betmgm online casino michigan https://onlinecasinosdirectory.org/</strong>
harrah's casino online
2022-07-26 13:16:25
<strong>new online casino with free signup bonus real money usa https://free-online-casinos.net/</strong>
live casino online real money
2022-07-26 14:33:13
<strong>royaloander online casino https://internet-casinos-online.net/</strong>
caesars pa online casino bonus code
2022-07-26 16:46:10
<strong>online casino usa https://cybertimeonlinecasino.com/</strong>
harrahs online casino
2022-07-26 20:33:38
<strong>bogata online casino https://1freeslotscasino.com/</strong>
casino card games online
2022-07-26 22:16:35
<strong>online casino with free signup bonus real money usa 2020 https://vrgamescasino.com/</strong>
usa online casino
2022-07-27 01:17:51
<strong>codeshare online double down casino https://casino-online-roulette.com/</strong>
real money online casino no deposit bonus
2022-07-27 04:45:45
<strong>top casino online https://casino-online-jackpot.com/</strong>
grand online casino
2022-07-27 06:11:48
<strong>casino live online https://onlineplayerscasino.com/</strong>
beste online casino
2022-07-27 09:26:55
<strong>turning stone online casino https://ownonlinecasino.com/</strong>
betmgm pa online casino
2022-07-27 11:44:15
<strong>harrahs casino online https://all-online-casino-games.com/</strong>
online casino game
2022-07-27 13:54:38
<strong>fastest payout online casino usa https://casino8online.com/</strong>
what is vpn
2022-08-07 16:02:51
<strong>best cheap vpn https://freevpnconnection.com/</strong>
free vpn for netflix
2022-08-07 18:03:20
<strong>vpn best https://shiva-vpn.com/</strong>
free vpn for pc
2022-08-07 19:45:52
<strong>unlimited free vpn - hola https://freehostingvpn.com/</strong>
using vpn to buy crypto
2022-08-07 21:37:33
<strong>best vpn mac https://ippowervpn.net/</strong>
turbo vpn download
2022-08-08 01:38:09
<strong>cisco vpn https://imfreevpn.net/</strong>
reddit best free vpn
2022-08-08 05:05:16
<strong>the best free vpn https://free-vpn-proxy.com/</strong>
free p2p vpn
2022-08-08 07:35:25
<strong>best vpn service 2022 https://rsvpnorthvalley.com/</strong>
Яндекс.Метрика