Moh*_*ssi 10 reverse-proxy ajp static-ip mod-jk apache-2.4
自从我开始在反向代理(Apache2 的 mod_jk)后面使用应用程序后,我注意到有些页面无法加载(如果没有反向代理设置,它们会加载)。
这是一个微妙的错误,我必须检查才能找到它,这要归功于谷歌浏览器:无法加载资源:net::ERR_CONNECTION_RESET。
简单地说,一个 JavaScript 文件将被部分加载(从 ~50KB 中加载了 ~12KB)。
我认为 Apache2、mod_jk、AJP 或 Jetty 有问题。
但后来我进行了一项调查,在那里我将使用不同的浏览器和不同的网络。
结论: 此错误 (ERR_CONNECTION_RESET) 仅在我使用具有静态IP 的网络时发生。
我在一台路由器上降低了安全级别,但徒劳无功。
具有静态 IP 的网络是否配备了更高级别的安全性?
如何克服这个问题?
这是一个僵局,因为反向代理主要是为了利用我们卖点的静态 IP 地址来提高安全级别。
我终于解决了这个问题。
当我遵循@john ktejik 的指示时,发生了突破:
我开始意识到所涉及的资源包含在一个 .jar 文件中。因此,我不得不告诉 Apache2 明确使用“ SetOutputFilter INFLATE;proxy-html;DEFLATE ”。
那是我开始取得一些进展的时候。
由于 inflate/deflate 指令禁用了某些链接,因此我必须使其独占 javascript 文件:
“ AddOutputFilterByType DEFLATE 应用程序/x-javascript ”。
另外,我需要一个额外的调整来激活mod_expires和mod_headers ( source )。
最后,我宁愿在不同机器上测试之前清除缓存。
显然,问题与缓存过期和静态 IP 相关,我无法真正理解。
更重要的是,问题解决了(在不同的机器上测试了不同浏览器的静态和动态IP)!
小智 5
我在使用 mod_jk 或 mod_proxy 在 apache2 后面运行 confluence 实例(在 tomcat 服务器中)时遇到了类似的问题。当我尝试查看 confluence wiki 页面时,收到以下错误消息:
铬:ERR_CONNECTION_RESET
Firefox:连接已重置
微妙的问题是可以查看某些页面(如登录屏幕),而我在查看其他页面时失去了连接。我还发现,当我绕过代理时,我可以查看所有页面(例如,使用 SOCKS 代理通过 ssh 直接在运行 tomcat/confluence 的机器上发出请求)。
最后发现是confluence和apache2双重压缩导致的问题。这导致内容被压缩两次,客户端无法处理。
Apache2 使用 mod_deflate 来压缩从服务器发送到客户端的内容。我遇到了这些关于测试(和禁用)mod_deflate 的说明。
关断压缩在融合Web应用程序解决了这个问题对我来说,如所描述这里。
就我而言,Apache 实例在许多应用程序/开发人员之间共享,我猜我不知道的服务器升级或重新配置引入了这些问题。
归档时间: |
|
查看次数: |
71667 次 |
最近记录: |