我依赖的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.c
,mod_proxy.c
和mod_proxy_http.c
Apache 2.4