我们有一个需要启用 SSL 的 Delphi SOAP 服务。我选择使用 IIS ARR 反向代理进行 SSL 卸载以简化配置(与 OpenSSL 和手动证书 + 密码管理相比)。ARR 有效,但它增加了大量开销...... 18 个服务请求的响应时间从不到 2 秒缩短到 19 秒(压缩后总计约 60Kb)。
我在发送和接收消息时向客户端和服务器添加了时间戳日志记录。它显示从客户端发送到服务接收之间通过 ARR 的每个请求路由增加了大约 1 秒。响应很快被路由回来,只有通过 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 的请求和响应示例: