在Windows 2008 R2 IIS 7.5上,在端口80上运行ARR和URL重写 在同一台服务器上,端口10000上的Apache正在运行(未按设计采用8080)。 IIS将所有在/ cp1上进行的查询转发到Apache(反向代理)。
在Apache上运行许多Ajax请求到数据库。如果此类请求超过5秒,我会从IIS收到以下消息:
Fehlerzusammenfassung
HTTP-Fehler 502.3 - Bad Gateway
Der Server lieferte eine ungültige oder unbekannte Rückmeldung.
Ausführliche Fehlerinformationen
Modul ApplicationRequestRouting
Benachrichtigung ExecuteRequestHandler
Handler ApplicationRequestRoutingHandler
Fehlercode 0x80072f78
Angeforderte URL http://win2008r2iis:80/cp1/index.pl
Physikalischer Pfad C:\inetpub\wwwroot\cp1\index.pl
Anmeldemethode Anonym
Angemeldeter Benutzer Anonym
响应标题现在向我显示如下:
Pragma: no-cache
Date: Thu, 08 Jan 2015 10:27:00 GMT
Server: Microsoft-IIS/7.5
X-Powered-By: ARR/2.5, ASP.NET
Content-Type: text/html; charset=utf-8
Cache-Control: private
Content-Disposition: inline;
Keep-Alive: timeout=5, max=100
Content-Length: 5323
Expires: Tue, 1 Jan 1980 12:00:00 GMT
问题在Keep-Alive标题中说明了5秒。根据web.config但是1分钟被设置为超时:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<remove name="Perl" />
<remove name="ActiveState Perl for *.pl" />
<remove name="PerlEx" />
</handlers>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
</staticContent>
<httpProtocol allowKeepAlive="true" />
</system.webServer>
<system.applicationHost>
<webLimits connectionTimeout="00:01:00" />
</system.applicationHost>
</configuration>
在ARR缓存设置中输入值为120秒。