У нас есть служба Delphi SOAP, для которой необходимо включить SSL. Я решил использовать обратный прокси-сервер IIS ARR для разгрузки SSL для простоты настройки (по сравнению с OpenSSL и ручным управлением сертификатом + парольной фразой). ARR работает, но добавляет безумные накладные расходы ... Время отклика увеличилось с менее 2 секунд до 19 секунд для 18 запросов на обслуживание (всего около 60 КБ сжатых данных).
Я добавил на клиент и сервер регистрацию с отметками времени, когда сообщения отправляются и принимаются. Он показывает около 1 секунды, добавляемой к каждой маршрутизации запроса через ARR между отправкой от клиента и получением службой. Ответ направляется обратно очень быстро, только маршрутизация запроса через ARR выполняется медленно (см. Изображение ниже).
Как я могу отследить источник накладных расходов? Разве ARR не подходит для этого варианта использования? Я попробовал настроить и отключить большинство настроек, включая кеширование. Я пробовал разные хосты с чистыми настройками IIS, включая производственную Windows Server 2012. Сам по себе SSL не является накладными расходами, просто наличие обратного прокси-сервера ARR HTTP вызывает задержку.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://localhost:8987/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Примеры запросов и ответов от Fiddler: