Apache mod_proxy:将安全websocket转发到非安全

时间:2016-09-23 06:45:15

标签: apache ssl websocket mod-proxy

我依赖的websocket库(PHP-Websockets)尚不支持安全套接字(wss)。我的网站虽然提供https,但我无法使用不安全的ws个连接。

我正在尝试使用Apache's mod_proxy将来自浏览器的安全请求转发给客户端。

的Javascript

var ws = new WebSocket('wss://example.com/_ws_/');

Apache VirtualHost

ProxyPass        "/_ws_/" "ws://127.0.0.1:8080/"
ProxyPassReverse "/_ws_/" "ws://127.0.0.1:8080/"
# I've also tried "/_ws_/" "ws://example.com:8080/"  Same error below

尝试连接时,浏览器会收到500 Server Error。日志显示:

  

没有协议处理程序对URL / _ws_ /有效。如果您使用的是DSO版本的mod_proxy,请确保使用LoadModule将代理子模块包含在配置中。

我已经确认,如果我删除代理规则,请停止将用户重定向到https并尝试从浏览器连接到不安全的套接字:new WebSocket('ws://example.com/'),一切正常。

我加载的Apache模块包括mod_ssl.cmod_proxy.cmod_proxy_http.c

Apache 2.4

1 个答案:

答案 0 :(得分:1)

要反转代理WebSockets,还需要加载mod_proxy_wstunnel模块。