IIS 重写模块和静态压缩

IIS 重写模块和静态压缩

我看到过一些帖子说不能将静态压缩与 IIS 重写模块出站规则结合使用。

在我们的配置中,我们没有任何出站规则,只有入站规则(用于将 IIS 配置为反向代理)

动态压缩有效,但静态压缩无效。

有人能确认使用入站规则时静态压缩是否被禁用吗?

  • 我已启用跟踪,但看不到任何静态压缩失败消息
  • 如果重写规则被禁用,则静态压缩有效。
  • Windows 服务器 2012 / IIS 8.5

以下是来自反向代理站点和下游站点(均在同一台机器上的 IIS 中运行)的跟踪日志的片段。

在反向代理站点日志中,您可以看到 StaticCompressionModule 已加载,但立即失败并引发 NOTIFY_MODULE_END 事件。此日志中没有“STATIC_COMPRESSION_*”条目。

这似乎表明静态压缩虽然已启用,但对该站点不起作用。

然而,在下游站点中,您可以看到为 StaticCompressionModule 记录了 STATIC_COMPRESSION_START 事件。不久之后,出现了 STATIC_COMPRESSION_NOT_SUCCESS (COMPRESSION_DISABLED) 条目,但这是预料之中的,因为此站点已禁用静态压缩。

跟踪日志(反向代理站点)

 <EventData>
  <Data Name="ContextId">{800000D4-0001-FA00-B63F-84710C7967BB}</Data>
  <Data Name="OldHandlerName">StaticFile</Data>
  <Data Name="NewHandlerName">ApplicationRequestRoutingHandler</Data>
  <Data Name="NewHandlerModules">ApplicationRequestRouting</Data>
  <Data Name="NewHandlerScriptProcessor"></Data>
  <Data Name="NewHandlerType"></Data>
 </EventData>

 <EventData>
  <Data Name="ContextId">{800000D4-0001-FA00-B63F-84710C7967BB}</Data>
  <Data Name="ModuleName">StaticCompressionModule</Data>
  <Data Name="Notification">16</Data>
  <Data Name="fIsPostNotification">false</Data>
 </EventData>
 <RenderingInfo Culture="en-GB">
  <Opcode>NOTIFY_MODULE_START</Opcode>
  <Keywords>
   <Keyword>RequestNotifications</Keyword>
  </Keywords>
  <freb:Description Data="Notification">MAP_REQUEST_HANDLER</freb:Description>
 </RenderingInfo>
 <ExtendedTracingInfo xmlns="http://schemas.microsoft.com/win/2004/08/events/trace">
  <EventGuid>{002E91E3-E7AE-44AB-8E07-99230FFA6ADE}</EventGuid>
 </ExtendedTracingInfo>
</Event>
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
 <System>
  <Provider Name="WWW Server" Guid="{3A2A4E84-4C21-4981-AE10-3FDA0D9B0F83}"/>
  <EventID>0</EventID>
  <Version>1</Version>
  <Level>5</Level>
  <Opcode>2</Opcode>
  <Keywords>0x100</Keywords>
  <TimeCreated SystemTime="2018-04-25T12:38:00.482Z"/>
  <Correlation ActivityID="{800000D4-0001-FA00-B63F-84710C7967BB}"/>
  <Execution ProcessID="5964" ThreadID="5132"/>
  <Computer>QA-CAMC01</Computer>
 </System>
 <EventData>
  <Data Name="ContextId">{800000D4-0001-FA00-B63F-84710C7967BB}</Data>
  <Data Name="ModuleName">StaticCompressionModule</Data>
  <Data Name="Notification">16</Data>
  <Data Name="fIsPostNotificationEvent">false</Data>
  <Data Name="NotificationStatus">0</Data>
 </EventData>
 <RenderingInfo Culture="en-GB">
  <Opcode>NOTIFY_MODULE_END</Opcode>
  <Keywords>
   <Keyword>RequestNotifications</Keyword>
  </Keywords>
  <freb:Description Data="Notification">MAP_REQUEST_HANDLER</freb:Description>
  <freb:Description Data="NotificationStatus">NOTIFICATION_CONTINUE</freb:Description>
 </RenderingInfo>
 <ExtendedTracingInfo xmlns="http://schemas.microsoft.com/win/2004/08/events/trace">
  <EventGuid>{002E91E3-E7AE-44AB-8E07-99230FFA6ADE}</EventGuid>
 </ExtendedTracingInfo>
</Event>

跟踪日志(下游 IIS 站点)

<EventData>
  <Data Name="ContextId">{80000054-0000-F800-B63F-84710C7967BB}</Data>
  <Data Name="OldHandlerName"></Data>
  <Data Name="NewHandlerName">StaticFile</Data>
  <Data Name="NewHandlerModules">StaticFileModule,DefaultDocumentModule,DirectoryListingModule</Data>
  <Data Name="NewHandlerScriptProcessor"></Data>
  <Data Name="NewHandlerType"></Data>
 </EventData>

     <EventData>
  <Data Name="ContextId">{80000054-0000-F800-B63F-84710C7967BB}</Data>
  <Data Name="ModuleName">StaticCompressionModule</Data>
  <Data Name="Notification">16</Data>
  <Data Name="fIsPostNotification">false</Data>
 </EventData>
 <RenderingInfo Culture="en-GB">
  <Opcode>NOTIFY_MODULE_START</Opcode>
  <Keywords>
   <Keyword>RequestNotifications</Keyword>
  </Keywords>
  <freb:Description Data="Notification">MAP_REQUEST_HANDLER</freb:Description>
 </RenderingInfo>
 <ExtendedTracingInfo xmlns="http://schemas.microsoft.com/win/2004/08/events/trace">
  <EventGuid>{002E91E3-E7AE-44AB-8E07-99230FFA6ADE}</EventGuid>
 </ExtendedTracingInfo>
</Event>
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
 <System>
  <Provider Name="WWW Server" Guid="{3A2A4E84-4C21-4981-AE10-3FDA0D9B0F83}"/>
  <EventID>0</EventID>
  <Version>1</Version>
  <Level>4</Level>
  <Opcode>1</Opcode>
  <Keywords>0x40</Keywords>
  <TimeCreated SystemTime="2018-04-25T12:38:00.480Z"/>
  <Correlation ActivityID="{80000054-0000-F800-B63F-84710C7967BB}"/>
  <Execution ProcessID="2548" ThreadID="3020"/>
  <Computer>QA-CAMC01</Computer>
 </System>
 <EventData>
  <Data Name="ContextId">{80000054-0000-F800-B63F-84710C7967BB}</Data>
 </EventData>
 <RenderingInfo Culture="en-GB">
  <Opcode>STATIC_COMPRESSION_START</Opcode>

答案1

感谢@milope - 他找出了问题的原因(见评论)。解决方案是在代理站点上禁用静态压缩。然后在应用程序请求路由缓存 IIS 模块中启用带压缩的缓存。

相关内容