car*_*mon 9 iis iis-7 soap iis-arr arr
我们有一个需要启用SSL的Delphi SOAP服务.我选择使用IIS ARR反向代理来进行SSL卸载以便于配置(与OpenSSL和手动证书+密码短语管理相比).ARR有效,但它增加了大量的开销...... 对于18个服务请求(总压缩约60Kb),响应时间从不到2秒变为19秒.
我将时间戳记录添加到客户端和服务器,以便在发送和接收消息时使用.它显示在从客户端发送和服务接收之间通过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>
Run Code Online (Sandbox Code Playgroud)
来自Fiddler的请求和回复样本:


小智 7
我们有同样的问题.我找到了根,它在System.Net.Sockets.Socket.DoConnect中.问题与IPv6有关:
http://msdn.microsoft.com/en-us/library/115ytk56.aspx
"如果启用了IPv6并且调用了TcpClient(String,Int32)方法以连接到解析为IPv6和IPv4地址的主机,则将首先尝试与IPv4地址之间的IPv6地址连接.这可能会产生影响如果主机没有监听IPv6地址,则延迟建立连接的时间."
要解决环回请求,您需要在计算机上禁用IPv6,请参阅第4-5-6页:https://stackoverflow.com/a/12403731
我的建议:使用 IIS 作为应用程序,使用 Apache HTTP Daemon 进行代理。
过去,我使用过各种软件和硬件来进行 SSL 卸载(我认为是从 2003 年开始)。每个都有自己的定价水平和功能。最近几年,我已转而仅使用 Apache HTTP Daemon 来实现此目的。即使在 Windows 上与 IIS 结合使用也是如此。一旦有了正在运行的示例,Apache 就很容易配置,并且通过转发和重命名更容易扩展到更复杂的场景。
有关如何在 Windows 上使用 Apache HTTP Daemon 作为 SSL 卸载引擎的说明,请访问http://www.invantive.com/about-invantive/news/entryid/897/ssl-offloading-for-apache-tomcat。
| 归档时间: |
|
| 查看次数: |
2833 次 |
| 最近记录: |