如何通过wss在Apache上运行websocket?

时间:2019-11-11 13:22:26

标签: apache websocket wss

我正在尝试在套接字上运行PHP聊天。

服务器配置:Ubuntu-18.04-amd64,Apache / 2.4.29,来自Let's Encrypt的SSL证书。

我用rachet。 Hereherehere描述了如何通过SSL连接来连接套接字。但是我没有成功。

我在Apache中安装了必要的模块:

sudo a2enmod proxy
sudo a2enmod proxy_wstunnel
sudo a2enmod proxy_http

写在/etc/apache2/apache2.conf

<VirtualHost *: 443>
  <Location "/chat/">
    ProxyPreserveHost On
    ProxyPass /ws ws://xxxxxx.xx:999
    ProxyPassReverse /ws ws://xxxxxx.xx:999
  </Location>
</VirtualHost>

打开了999端口

sudo iptables -I INPUT -p tcp --dport 999 -j ACCEPT

重新启动Apache

sudo systemctl restart apache2

启动聊天服务器

php /var/www/html/chat/bin/chat-server.php

写出套接字调用脚本

websocket = new WebSocket ('wss://xxxxxx.xx/chat');

我尝试通过浏览器进行连接

https://xxxxxx.xx/chat/

出现错误

  

与'wss://xxxxxx.xx/chat'的WebSocket连接失败:在执行期间出错   WebSocket握手:意外的响应代码:301

我阅读了各种技巧,但仍然无法理解我做错了什么。任何改变情况的尝试都会产生错误301、300、500或200。

请告诉我我错了吗?

0 个答案:

没有答案