我正在尝试使Websocket / push服务器与SSL一起运行,但无法使其正常工作。 以下是一些有关我正在使用的内容以及到目前为止已完成的操作的信息:
当我通过autobahn.js与ws://my.domain.net:8888/
使用非SSL连接时,一切工作都很好。
尝试使用wss://my.domain.net/wss/
时,浏览器就会出现504个连接超时。
我的push-server.php的一部分:
$context = new React\ZMQ\Context($loop);
$pull = $context->getSocket(ZMQ::SOCKET_PULL);
$pull->bind('tcp://0.0.0.0:5555'); // set to 0.0.0.0 for testing, was 127.0.0.1 before but didn't work either
$pull->on('message', array($pusher, 'onMessage'));
$webSock = new React\Socket\Server('0.0.0.0:8888', $loop);
$webServer = new Ratchet\Server\IoServer(
new Ratchet\Http\HttpServer(
new Ratchet\WebSocket\WsServer(
new Ratchet\Wamp\WampServer(
$pusher
)
)
),
$webSock
);
$loop->run();
服务器正在两个端口上监听:
php 3957 root 17u IPv4 823972456 0t0 TCP *:8888 (LISTEN)
ZMQbg/0 3957 3958 root 17u IPv4 823972456 0t0 TCP *:8888 (LISTEN)
ZMQbg/1 3957 3959 root 17u IPv4 823972456 0t0 TCP *:8888 (LISTEN)
php 3957 root 16u IPv4 823972455 0t0 TCP *:5555 (LISTEN)
ZMQbg/0 3957 3958 root 16u IPv4 823972455 0t0 TCP *:5555 (LISTEN)
ZMQbg/1 3957 3959 root 16u IPv4 823972455 0t0 TCP *:5555 (LISTEN)
我的Apache配置:
SSLProxyEngine on
ProxyRequests Off
SetEnv proxy-initial-not-pooled 1
ProxyPass /wss/ https://my.domain.net:8888/
ProxyPassReverse /wss/ https://my.domain.net:8888/
我也尝试使用
ProxyPass /wss/ wss://my.domain.net:8888/
但是随后我收到以下错误消息
[proxy:warn] AH01144: No protocol handler was valid for the URL /wss/. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
现在,当我尝试打开与autobahn.js到wss://my.domain.net/wss/
的连接时,请求将加载一段时间并以504网关超时结束,并且出现以下错误消息:
[proxy_http:error] (103)Software caused connection abort: [client x.x.x.x:33362] AH01102: error reading status line from remote server my.domain.net:8888
[proxy:error] [client x.x.x.x:33362] AH00898: Error reading from remote server returned by /wss/
部分请求标头:
Cache-Control: no-cache
Connection: Upgrade
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Sec-WebSocket-Key: WG/ajAsTaVhBgEeEz5wiUg==
Sec-WebSocket-Protocol: wamp
Sec-WebSocket-Version: 13
Upgrade: websocket
部分响应标题:
Connection: keep-alive
Content-Length: 578
Content-Type: text/html
Server: nginx
在浏览器中打开https://my.domain.net/wss/也会导致网关超时,由nginx提供服务。
我已经花了大约2天的时间进行谷歌搜索和尝试不同的解决方案,但似乎没有任何效果。 如果您需要更多信息,请告诉我。 提前谢谢!