我一直在努力让解析服务器实时查询工作一周,无论我做什么,我都无法让 apache 让 wss:// 连接通过。
我正在使用在 linux/apache ec2 实例上设置解析服务器和仪表板的 bitnami ami。
我需要这个在 https/wss 上工作,并尝试了 2 个不同的方向。
第一种是直接将域指向实例 IP,并使用内置的让加密工具 bitnami 包到 ami 中来创建 ssl 证书。我认为这种方式绕过了 AWS 负载均衡器和通过其证书管理器颁发的证书的任何潜在问题。我可以通过 https 连接一切,但 wss 连接总是被阻止。
我尝试的第二种方法是将域指向负载均衡器并使用来自 aws 证书管理器的证书。我想我无法直接进入实例,所以我不妨试一试。不,同样的事情。
在我的解析日志中,它说实时查询服务器已经启动,它记录在 onListen 事件中,所以我认为这不是解析实时查询服务器本身的问题,而是它必须是某种 apache 问题,我无论如何,我都不是 apache 大师。
ami 已经启用了 proxy_wstunnel_module 并且正在为 http 使用反向代理。我尝试将以下的多种变体添加到 httpd.config 但我所做的任何事情似乎都没有任何效果:
#RewriteEngine on
#RewriteCond ${HTTP:Upgrade} websocket [NC]
#RewriteCond ${HTTP:Connection} upgrade [NC]
#RewriteRule .* "ws://127.0.0.1:1337/$1" [P,L]
#ProxyPass "/parse" "wss://127.0.0.1:1337/parse"
#ProxyPassReverse "/parse" "wss://127.0.0.1:1337/parse"
在这个特定方面的文档充其量是稀缺的,我能找到的是 nginx,而不是 apache。
我还没有尝试过的一件事是使用 redis 单独运行实时查询服务器,但我想如果我不能让这个更简单的设置正常工作,那么即使考虑进入那个潜在的兔子洞也是没有意义的。
Parse 非常适合我需要构建的东西,因为我不能使用 Firebase,但我必须让实时查询服务器在 wss 上安全地工作才能使用它,所以我现在几乎被卡住了。
任何人都有过让这个工作的经验,或者对如何尝试通过 wss 进行连接有任何想法?