无法加载资源:net::ERR_CONNECTION_RESET 与 Apache 2.4 和 Chrome
Posted
技术标签:
【中文标题】无法加载资源:net::ERR_CONNECTION_RESET 与 Apache 2.4 和 Chrome【英文标题】:Failed to load resource: net::ERR_CONNECTION_RESET with Apache 2.4 and Chrome 【发布时间】:2016-04-17 16:21:03 【问题描述】:我在使用 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 调试 和 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
【问题讨论】:
请提供httpd、mod_jk和tomcat日志 Jetty 不能很好地处理 Apache2。 你有防火墙设置吗? 嗯,我注意到它适用于 Firefox 和 Safari,以及一些具有静态和动态 IP 地址的 WiFi 网络。在大多数情况下,它根本不适用于具有静态 IP 地址的 Chrome。我试图让 WiFi 网络具有家庭位置设置(而不是工作或公共),没有明显的效果。顺便说一句,我也为 Jetty 添加了工人(更好的性能)。最重要的是,当它不起作用时,仅仅是因为部分加载了大约 40KB 的文件(仅发布了大约 10KB)。 请查看以下链接:Link-1Link-2Link-3 【参考方案1】:在 250 个 Server 2012/2016 系统上出现此问题。
2012 及更高版本 - 问题:无法访问 NuGet 存储库。无法访问 Bing.Com。无法访问 MSN.Com。某些网站无法正常加载,例如 TMobile.com W3Schools
原因 - TCP ECNCapability 协议导致 Windstream 丢弃数据包。 Windstream 既不会修复也不会承认该问题。
修复:在提升的命令提示符下,键入以下命令并按 Enter。 Bing.Com 应立即开始工作。
netsh int tcp set global ecncapability=disabled
【讨论】:
还值得注意的是,这仅在特定的 ISP 上发生在我们身上。在 2016 年的 TP 服务器中,这是所有 ISP 的问题。【参考方案2】:我终于解决了这个问题。
当我遵循@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)!
【讨论】:
以上是关于无法加载资源:net::ERR_CONNECTION_RESET 与 Apache 2.4 和 Chrome的主要内容,如果未能解决你的问题,请参考以下文章