无法加载资源:net::ERR_CONNECTION_RESET 使用 Apache 2.4 和 Chrome
Failed to load resource: net::ERR_CONNECTION_RESET with Apache 2.4 and Chrome
我在使用 Apache 2.4 (mod_jk) 的反向代理后面使用了一个应用程序。
当我请求某些页面时,它需要很长时间才能加载,而且最终根本不会加载。
经过调查,我发现了一些细微的 JavaScript 直接访问(无反向代理)时不存在的错误。
进一步研究,发现特定的 .js 文件无法完成加载,我收到客户端错误:ERR_CONNECTION_RESET 部分加载 .js 文件。
我注意到 Apache2 和 Tomcat 都能顺利地协同工作,而 Apache2 和 Jetty 7.3 之间却不是这样。
PS:只有涉及外部静态IP地址时才会出现此错误
感觉好像哪里超时了
下面的日志仅与单个 .js 资源请求相关(导致主要问题的请求)。
access.log:
client-ip-address - - [13/Jan/2016:15:35:14 +0000] "GET /mifos/webcontent/birt/ajax/lib/prototype.js HTTP/1.1" 200 47603
error.log(使用 LogLevel debug 和 ProxyHTMLLogVerbose On):
[Wed Jan 13 15:35:14.688949 2016] [authz_core:debug] [pid 31137:tid 3011484480] mod_authz_core.c(835): [client client-ip-address:53033] AH01628: authorization result: granted (no directives)
[Wed Jan 13 15:35:14.689058 2016] [proxy:debug] [pid 31137:tid 3011484480] mod_proxy.c(1163): [client client-ip-address:53033] AH01143: Running scheme http handler (attempt 0)
[Wed Jan 13 15:35:14.689071 2016] [proxy_ajp:debug] [pid 31137:tid 3011484480] mod_proxy_ajp.c(710): [client client-ip-address:53033] AH00894: declining URL http://server-local-ip-address:8080/mifos/webcontent/birt/ajax/lib/prototype.js
[Wed Jan 13 15:35:14.689083 2016] [proxy:debug] [pid 31137:tid 3011484480] proxy_util.c(2140): AH00942: HTTP: has acquired connection for (server-local-ip-address)
[Wed Jan 13 15:35:14.689093 2016] [proxy:debug] [pid 31137:tid 3011484480] proxy_util.c(2193): [client client-ip-address:53033] AH00944: connecting http://server-local-ip-address:8080/mifos/webcontent/birt/ajax/lib/prototype.js to server-local-ip-address:8080
[Wed Jan 13 15:35:14.689104 2016] [proxy:debug] [pid 31137:tid 3011484480] proxy_util.c(2394): [client client-ip-address:53033] AH00947: connected /mifos/webcontent/birt/ajax/lib/prototype.js to server-local-ip-address:8080
[Wed Jan 13 15:35:14.689158 2016] [proxy:debug] [pid 31137:tid 3011484480] proxy_util.c(2636): AH00951: HTTP: backend socket is disconnected.
[Wed Jan 13 15:35:14.689590 2016] [proxy:debug] [pid 31137:tid 3011484480] proxy_util.c(2771): AH02824: HTTP: connection established with server-local-ip-address:8080 (server-local-ip-address)
[Wed Jan 13 15:35:14.689628 2016] [proxy:debug] [pid 31137:tid 3011484480] proxy_util.c(2923): AH00962: HTTP: connection complete to server-local-ip-address:8080 (server-local-ip-address)
[Wed Jan 13 15:35:15.141686 2016] [proxy:debug] [pid 31137:tid 3011484480] proxy_util.c(2155): AH00943: http: has released connection for (server-local-ip-address)
mod-jk.log(除了一个重复的行之外没什么有趣的):
[Wed Jan 13 15:03:22 2016][30041:3075380928] [info] init_jk::mod_jk.c (3383): mod_jk/1.2.40 initialized
我终于解决了这个问题。
当我遵循@john ktejik 的指示时,突破发生了:
Failed to load resource under Chrome
我开始意识到所涉及的资源包含在一个 .jar 文件中。因此,我不得不告诉 Apache2 明确使用“SetOutputFilter INFLATE;proxy-html;DEFLATE”。
那是我开始取得一些进步的时候。
由于 inflate/deflate 指令禁用了一些链接,我不得不将其设为独占 javascript 文件:
"AddOutputFilterByType DEFLATE application/x-javascript".
另外,我需要一个额外的调整来激活 mod_expires 和 mod_headers (source).
最后,我宁愿在不同机器上测试之前清除缓存。
很明显,问题与缓存过期和静态IP有关,我不太理解。
更重要的是,问题解决了(在不同机器不同浏览器用静态和动态IP测试过)!
在 250 Server 2012/2016 系统上有这个问题。
2012 年及以后 - 问题:无法访问 NuGet 存储库。无法访问 Bing.Com。无法访问 MSN.Com。某些网站无法正确加载,例如 TMobile.com W3Schools
原因 - TCP ECNCapability 协议导致 Windstream 丢弃数据包。 Windstream 既不会修复也不会承认该问题。
修复:在提升的命令提示符下,键入以下命令并按回车键。 Bing.Com 应立即开始工作。
netsh int tcp 设置全局 ecncapability=禁用
我在使用 Apache 2.4 (mod_jk) 的反向代理后面使用了一个应用程序。
当我请求某些页面时,它需要很长时间才能加载,而且最终根本不会加载。
经过调查,我发现了一些细微的 JavaScript 直接访问(无反向代理)时不存在的错误。
进一步研究,发现特定的 .js 文件无法完成加载,我收到客户端错误:ERR_CONNECTION_RESET 部分加载 .js 文件。
我注意到 Apache2 和 Tomcat 都能顺利地协同工作,而 Apache2 和 Jetty 7.3 之间却不是这样。
PS:只有涉及外部静态IP地址时才会出现此错误
感觉好像哪里超时了
下面的日志仅与单个 .js 资源请求相关(导致主要问题的请求)。
access.log:
client-ip-address - - [13/Jan/2016:15:35:14 +0000] "GET /mifos/webcontent/birt/ajax/lib/prototype.js HTTP/1.1" 200 47603
error.log(使用 LogLevel debug 和 ProxyHTMLLogVerbose On):
[Wed Jan 13 15:35:14.688949 2016] [authz_core:debug] [pid 31137:tid 3011484480] mod_authz_core.c(835): [client client-ip-address:53033] AH01628: authorization result: granted (no directives)
[Wed Jan 13 15:35:14.689058 2016] [proxy:debug] [pid 31137:tid 3011484480] mod_proxy.c(1163): [client client-ip-address:53033] AH01143: Running scheme http handler (attempt 0)
[Wed Jan 13 15:35:14.689071 2016] [proxy_ajp:debug] [pid 31137:tid 3011484480] mod_proxy_ajp.c(710): [client client-ip-address:53033] AH00894: declining URL http://server-local-ip-address:8080/mifos/webcontent/birt/ajax/lib/prototype.js
[Wed Jan 13 15:35:14.689083 2016] [proxy:debug] [pid 31137:tid 3011484480] proxy_util.c(2140): AH00942: HTTP: has acquired connection for (server-local-ip-address)
[Wed Jan 13 15:35:14.689093 2016] [proxy:debug] [pid 31137:tid 3011484480] proxy_util.c(2193): [client client-ip-address:53033] AH00944: connecting http://server-local-ip-address:8080/mifos/webcontent/birt/ajax/lib/prototype.js to server-local-ip-address:8080
[Wed Jan 13 15:35:14.689104 2016] [proxy:debug] [pid 31137:tid 3011484480] proxy_util.c(2394): [client client-ip-address:53033] AH00947: connected /mifos/webcontent/birt/ajax/lib/prototype.js to server-local-ip-address:8080
[Wed Jan 13 15:35:14.689158 2016] [proxy:debug] [pid 31137:tid 3011484480] proxy_util.c(2636): AH00951: HTTP: backend socket is disconnected.
[Wed Jan 13 15:35:14.689590 2016] [proxy:debug] [pid 31137:tid 3011484480] proxy_util.c(2771): AH02824: HTTP: connection established with server-local-ip-address:8080 (server-local-ip-address)
[Wed Jan 13 15:35:14.689628 2016] [proxy:debug] [pid 31137:tid 3011484480] proxy_util.c(2923): AH00962: HTTP: connection complete to server-local-ip-address:8080 (server-local-ip-address)
[Wed Jan 13 15:35:15.141686 2016] [proxy:debug] [pid 31137:tid 3011484480] proxy_util.c(2155): AH00943: http: has released connection for (server-local-ip-address)
mod-jk.log(除了一个重复的行之外没什么有趣的):
[Wed Jan 13 15:03:22 2016][30041:3075380928] [info] init_jk::mod_jk.c (3383): mod_jk/1.2.40 initialized
我终于解决了这个问题。
当我遵循@john ktejik 的指示时,突破发生了:
Failed to load resource under Chrome
我开始意识到所涉及的资源包含在一个 .jar 文件中。因此,我不得不告诉 Apache2 明确使用“SetOutputFilter INFLATE;proxy-html;DEFLATE”。
那是我开始取得一些进步的时候。
由于 inflate/deflate 指令禁用了一些链接,我不得不将其设为独占 javascript 文件:
"AddOutputFilterByType DEFLATE application/x-javascript".
另外,我需要一个额外的调整来激活 mod_expires 和 mod_headers (source).
最后,我宁愿在不同机器上测试之前清除缓存。
很明显,问题与缓存过期和静态IP有关,我不太理解。
更重要的是,问题解决了(在不同机器不同浏览器用静态和动态IP测试过)!
在 250 Server 2012/2016 系统上有这个问题。
2012 年及以后 - 问题:无法访问 NuGet 存储库。无法访问 Bing.Com。无法访问 MSN.Com。某些网站无法正确加载,例如 TMobile.com W3Schools
原因 - TCP ECNCapability 协议导致 Windstream 丢弃数据包。 Windstream 既不会修复也不会承认该问题。
修复:在提升的命令提示符下,键入以下命令并按回车键。 Bing.Com 应立即开始工作。
netsh int tcp 设置全局 ecncapability=禁用