【发布时间】:2020-07-26 00:27:39
【问题描述】:
我已经实现/尝试实现一个 websocket,用于在运行 linux 的 ec2 实例上与 apache webserver 上的用户之间进行通信。当我第一次配置它时,我让它工作,我的棘轮 websocket 指向端口 8081,没有任何 TLS。使用此配置,我能够升级到 websocket 并通过非安全 websocket 发送/接收数据。这只能通过 ip 地址实现,而不是通过实际的 url。 我正在一个子域中运行 websocket。
<VirtualHost *:443>
DocumentRoot "/var/www/html/video"
ServerName video.domain.com
SSLEngine on
SSLCertificateFile ./certs/server.crt
SSLCertificateKeyFile ./certs/server.key
# ProxyPass /ratchet/ ws://video.domain.com:8081/
<Directory "/var/www/html/video">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
当我使用基于 ip 的 websocket 连接通过 JS websocket API 连接到 websocket 时,上述解决方案有效。
我已经为 websocket API 尝试了 WSS、WS、带和不带端口等,但下面编写的代码仍然是我唯一可以开始工作的。
let socket = new WebSocket("ws://server_ip:8081");
我已经阅读了很多关于向 VH 添加 proxypass 的 stackoverflow 问题,但它并没有升级请求。此外,我尝试创建它自己的虚拟主机,但也不起作用。
我认为值得一提的是,我有一个通过代理请求的 cloudflare CDN。 希望能得到一些新鲜的眼睛。卡了一段时间。
【问题讨论】:
标签: php apache websocket httpd.conf ratchet