SSL を有効にする必要がある Delphi SOAP サービスがあります。構成を容易にするために、IIS ARR リバース プロキシを使用して SSL オフロードを行うことにしました (OpenSSL および手動の証明書 + パスフレーズ管理と比較して)。ARR は機能しますが、非常に多くのオーバーヘッドが追加されます... 18 のサービス要求 (圧縮された合計約 60Kb) に対して応答時間が2 秒未満から 19 秒になりました。
メッセージが送受信されたときのタイムスタンプ ロギングをクライアントとサーバーに追加しました。これは、クライアントからの送信とサービスによる受信の間に、ARR を介してルーティングされる各要求に約 1 秒追加されることを示しています。応答は非常に迅速に返されますが、ARR を介した要求ルーティングのみが遅くなります (下の画像を参照)。
オーバーヘッドの原因を追跡するにはどうすればよいですか? ARR はこのユース ケースに適していませんか? キャッシングを含むほとんどの設定を微調整して無効にしようとしました。運用環境の Windows Server 2012 を含む、クリーンな IIS セットアップでさまざまなホストを試しました。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 からの要求と応答のサンプル: