Как закрыть SSL-соединение после каждого запроса в Azure API Management - PullRequest
0 голосов
/ 14 апреля 2020

Я хотел бы закрыть SSL-соединение после каждого запроса в Azure API Management (из-за некоторых странных настроек брандмауэра) между Azure API Management и бэкэндом.

Я попытался установить политику заголовка HTTP

<set-header name="Connection" exists-action="override">
  <value>close</value>
</set-header>

Но при сохранении я получаю следующее сообщение об ошибке

Одно или несколько полей содержат неверные значения:

  • Ошибка в элементе 'set-header' в строке 30, столбец 10: имя заголовка недопустимо или запрещено изменять.

Согласно Mozilla, HTTP-заголовок «Connection» - это Запрещенное имя заголовка

Запрещенное имя заголовка - это имя любого HTTP-заголовка, который нельзя изменить программным способом; в частности, имя заголовка HTTP-запроса (в отличие от имени заголовка Запрещенного ответа).

С помощью Postman я могу установить HTTP-заголовок "Connection" и отправить свой запрос.

Как настроить Azure API Management для закрытия SSL-соединения после каждого запроса?

1 Ответ

0 голосов
/ 24 апреля 2020

Это невозможно. Внутренние соединения в APIM используются повторно, поэтому к тому времени, когда вы решите закрыть их, они могут уже использоваться для отправки другого параллельного запроса. Есть способ безопасно перезапустить бэкэнд-соединение, но это невозможно сделать для каждого запроса: https://docs.microsoft.com/en-us/rest/api/apimanagement/2019-12-01/backend/reconnect

Другой подход - заставить ваш бэкэнд отвечать HTTP 1.0. HTTP 1.0 подразумевает непостоянные соединения.

...