Apache 2.4.16代理不再工作

时间:2015-09-12 14:37:53

标签: apache proxy

我一直在Apache代理后面使用Gateone很长一段时间。突然之间,可能是在Debian Jessie安装的最后一次apt-get更新/升级之后,这已经不再适用了。 我在error.log中得到的错误是:

  

[星期六12月12日16:20:47.992400 2015] [代理:警告] [pid 1870] [客户端192.168.0.2:5022] AH01144:没有协议处理程序对URL / gateone /有效。如果您使用的是DSO版本的mod_proxy,请确保使用LoadModule将代理子模块包含在配置中。

我能找到的所有答案都指向需要加载的缺少代理(子)模块。这是我加载的代理模块列表:

proxy.conf  proxy_connect.load  proxy_html.conf  proxy_http.load
proxy.load  proxy_html.load  proxy_wstunnel.load

我的http conf文件中的(未更改的)部分如下所示:

            ProxyPass /gateone/ ws://localhost:8888/gateone/
            ProxyPassReverse /gateone/ ws://localhost:8888/gateone/
            ProxyPass /gateone/ wss://localhost:8888/gateone/
            ProxyPassReverse /gateone/ wss://localhost:8888/gateone/
            ProxyPass /gateone/ http://localhost:8888/gateone/
            ProxyPassReverse /gateone/ http://localhost:8888/gateone/

此配置过去有效。任何人都可以告诉我最近在Debian Jessie中是否有变化,特别是关于代理(websockets代理)?

谢谢, 汉斯

1 个答案:

答案 0 :(得分:2)

2.4.17有完全相同的问题,但2.4.12没问题。

有趣的是,这个ALSO发生在使用VC14或VC11的2.4.16和2.4.17 Windows x64版本上,因此这完全是代理模块内部的内容。

唯一的解决方案似乎是降级到2.4.12,因为没有代理模块的组合使其工作,您可以在2.4.12中使用您的配置而不会出现问题。确定的websocket代理打破2.4.16+

*更新:当您使用具有非常特定URL的ProxyPass时,解决方法允许从ws:http:回退。 例如

#Works 2.4.12 but fails 2.4.16+
ProxyPass /ws/ ws://localhost:8080/ws/

#2.4.16+ seems to want full and exact path and ws: fails but http: failover works
ProxyPass /ws/stomp/ http://localhost:8080/ws/stomp/