根据 stackoverflow 论坛成员的推荐,我在此论坛中提出以下问题,它显然更适合(我是该论坛的新手)。
我到底想要什么:
我网站的特定页面应从 Web 服务器加载其内容(html 结构,表示聊天窗口),但其聊天功能,在服务器端(放置在同一 Web 服务器上)以 PHP Ratchet 脚本的形式显示,应该可以工作通过 WebSocket 连接。
换句话说,对于这个特定页面,Web 服务器和 WebSocket 连接应该同时工作,而我只有一个 Apache (2.4) 服务器,在共享主机的基础上,没有 root 访问权限。而且,如前所述,在 Ratchet 中编程的聊天应用程序和网站的 HTML 页面都存在于 Web 服务器上。
在我的本地主机上进行测试时,效果非常好。然而,当尝试在我的 Web 服务器上部署它时,我遇到了麻烦,并且似乎需要在我的 Web 服务器或类似服务器( http://socketo.me/docs/deploy)前面使用 NGINX 反向代理。考虑到我的托管条件,这甚至可以部署,还是我需要切换到另一种托管类型?我从配置 NGINX 开始,但问题是我实际上无法修改我的 Apache Web 服务器正在侦听的端口,因为我没有 root 访问权限。我觉得我需要为此切换我的托管类型?
这个问题的一个方面可以总结为:当在共享主机的基础上拥有一个没有 root 访问权限的 web 服务器时,是否可以在客户端和浏览器之间放置一个反向代理以用于 websocket 目的?
大多数共享主机计划只允许您接受端口 80 (HTTP) 和 443 (HTTPS) 上的连接,并且不允许您访问终端。
假设是这种情况,您将无法运行 Ratchet WebSocket 服务器,因为它需要终端访问并且最好托管在非 HTTP 端口上。
我建议您在专用托管计划上运行 Web 服务器和 WebSocket 服务器,您将可以访问终端并能够使用您喜欢的任何端口。