我使用ARR作为反向代理在IIS后面运行服务.我知道有传递的标题x-forwarded-for和x-arr-log-id标题.但是,我想要的是传入的私钥,以便后备应用程序显式知道请求不是本地的(即使ARR服务器是).我已经看到一些关于添加/替换服务器变量的帖子,但这似乎不是通过支持应用程序上的请求头来实现的.
我猜测必须有一些web.config设置可以做到这一点,但到目前为止还没有找到它的运气.
例: X-PRIVATE-TOKEN: We are the children of Korn!
所以我可以相信x-forwarded-for地址是实际的地址,而不是简单地不信任所有代理请求的IP地址引用.
我们有一个需要启用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的请求和回复样本:


我在我的 IIS 服务器中设置了一个 ARR。我的要求是我必须将对此 ARR 服务器的请求路由到我在本地 IIS(ARR 服务器本身)中托管的应用程序之一。是否可以?
IE。假设在我的 ARR 服务器中有 Application1。然后我必须执行以下操作
Broswer -> ARR(iis 服务器)-> Application1(它本身在 ARR 服务器中)。
如果可能的话,如何实现这样的设置?