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



我所依赖的websocket库(PHP-Websockets)还不支持安全套接字(wss)。我的网站是通过https服务的,所以我不能使用不安全的ws连接。

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

Javascript

var ws = new WebSocket('wss://example.com/_ws_/');
Apache虚拟主机

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_/有效。如果您使用的是mod_proxy的DSO版本,请确保使用LoadModule将代理子模块包含在配置中。

我已经确认,如果我删除代理规则,停止重定向用户到https,并尝试从浏览器连接到不安全的套接字:new WebSocket('ws://example.com/'),事情工作得很好。

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

Apache 2.4

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

相关内容

  • 没有找到相关文章

最新更新