所以我开始使用 Ratchet(在 PHP 中编程和使用 websocket 服务器的库,http://socketo.me/docs/hello-world)在我的网站上(在 Web 服务器本身上)编写一个聊天应用程序。
我在我的本地主机上进行了所有设置,并且一切正常。现在我想将它部署在我的 Web 服务器上,它是一个 Apache 服务器。为此,我显然需要在我的 Web 服务器前面配置一个反向代理,最好使用 NGINX,因为 websocket 服务器不能简单地监听与我的 Apache 服务器相同的端口。
在搜索解释如何在我的 Apache Web 服务器前面使用 NGINX 配置反向代理的来源时,搜索结果/文章/教程总是告诉我如何在 UBUNTU 上的 Apache WebServer 上使用 NGINX 配置反向代理。我很困惑为什么 Ubuntu 总是在这里发挥作用;难道不使用 Ubuntu 就可以在我的 Apache Web 服务器前配置 NGINX 反向代理吗?
更新
我的服务器是基于共享主机的 Web 服务器,我没有 root 访问权限。鉴于我什至无法更改我的 Web 服务器监听的端口,因此实际上是否可以在我的 Web 服务器前面放置一个反向代理?
可以更好地描述我真正想要的内容:我网站的特定页面应从 Web 服务器加载其内容(html 结构,表示聊天窗口),但其聊天功能在服务器上显示为 PHP Ratchet 脚本-方面,应该通过 WebSocket 连接工作。换句话说,对于这个页面,Web 服务器和 WebSocket 连接应该同时工作,而我只有一个 Apache 服务器,在共享主机的基础上,没有根访问权限,在 Ratchet 中编程的聊天应用程序和网站的 HTML 页面存在(至少在我的本地主机上,这非常有效)。鉴于我的托管条件,甚至可以部署,还是我需要切换到另一种托管类型?
另外,请不要认为这个问题特定于 nginx。根据 Ratchet 中的文档,我的解决方案是:
我也想通了(github)
我很高兴知道四个或其他推荐的解决方案中的任何一个,即使这不包括 nginx。
最佳答案
在更新部分之后:
我们假设您不能在托管解决方案本身内的托管解决方案前放置反向代理。这似乎不太可能。
我最好的选择是在专用 VPS 上设置反向代理并通过它传递所有流量,但这种设置比您可能需要的要复杂得多。
来自“[...] 在我的 Web 服务器上的行,这是一个 Apache 服务器。”我猜你正在使用一个相互化的托管解决方案。在这种情况下,它将在很大程度上取决于您使用的特定主机。在您的 CPanel 中尝试查找“反向代理”/“代理”/“套接字”/“网络套接字”参数。
如果您在 VPS 上托管并且您的“家庭”Linux 发行版为 ubuntu,请按照教程进行操作,它可能会起作用。否则,查找特定于您的发行版(或操作系统,如果您不在 Linux 上)的教程。
关于apache - 在 Apache Web Server 前配置 NGINX Reverse Proxy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61888312/