带有Apache服务器SSL的PHP​​中的Websocket

时间:2015-12-22 18:14:26

标签: php apache ssl websocket phpwebsocket

我正在搜索在php中运行的Apache Web服务器中配置websocket,使用Devristo phpws库来运行websocket worker。

当我在服务器中运行php文件时,它给了我这个字符串:

Resource id #442015-12-22T16:41:16+00:00 NOTICE (5): phpws listening on ssl://172.31.29.79:12345

在前端,在AngularJS上构建,我尝试与:

建立连接
var dataStream = $websocket('wss://subdomain.domain.com');

谷歌Chrome浏览器的控制台给了我这个错误:

WebSocket connection to 'wss://subdomain.domain.com/' failed: Error during WebSocket handshake: Unexpected response code: 200

我有一个EC2 AWS实例,我已经托管了我的源代码,并且我已经为AWS Route 53配置了一个记录集,该记录集通过子域指向实例的公共IP。

我不知道如何配置正确的反向代理以允许通信。

我尝试使用反向代理设置Apache服务器,但我认为我没有以正确的方式配置它。

这是配置。 我已经在site-avaible调用websocket-ssl.conf中创建了一个文件,并在启用了站点的情况下使用此配置进行链接:

<VirtualHost *:80>
 ServerName subdomain.domain.com

 ProxyPass / ssl://172.31.29.79:12345/
 ProxyPassReverse / ssl://172.31.29.79:12345/
</VirtualHost>

有人可以帮助我吗?如果你想要别人的信息,请问我:)。

非常感谢

1 个答案:

答案 0 :(得分:0)

我用这个配置解决了。

  • 设置记录CNAME在AWS Route 53中调用subdomain.domain.com 指向我的ELB dns名称;
  • 在ELB听众中打开端口12345;
  • 在前端我建立了连接:

    var dataStream = $ websocket('wss://subdomain.domain.com:12345');

这就是全部