gpt4 book ai didi

node.js - 在具有多个域的同一服务器上托管 PHP 和 Node.js 应用程序

转载 作者:太空宇宙 更新时间:2023-11-04 01:13:20 25 4
gpt4 key购买 nike

我有一个 Linode VPS,当前运行 lighttpd 来为我的 PHP 网站提供服务并监听端口 80。

我还运行 Node.js,它监听端口 81,并使用 websockets 和 HTTP 与客户端交互。

我想将几个不同的域指向该服务器。理想情况下,我希望托管 PHP 站点的域都与同一个 lighttpd 服务器通信,并且使用 Node.js 的站点会以某种方式重定向到 Node.js 正在监听客户端不知道的端口(例如,没有 30x 重定向)。

example-php1.com:80 -> linodebox:80 lighttpd /var/www/example1
example-php2.com:80 -> linodebox:80 lighttpd /var/www/example2
example-node.com:80 -> linodebox:81 node.js

有没有办法通过设置 DNS 条目或调整 iptables 来做到这一点? lighttpd 需要成为 Node.js 的代理吗? websockets 功能需要在没有任何后备的情况下工作,并访问非 Node 域,例如example-php1.com:81,不应公开 Node 应用程序。

我认为完美的解决方案不需要更改现有应用程序代码,也不需要在软件 Web 服务器之间进行代理,但我可能是错的。

最佳答案

汤姆怎么了!?

我推荐 HA-Proxy,它是目前性能最高的代理之一,应该可以完成您想要做的事情。

我正在做类似的事情,用 nginx 作为代理,这很简单,但不是最快的。

HA-Proxy 的网站在这里 http://haproxy.1wt.eu

如果您想要一个“纯粹”的解决方案,您可能可以通过查看 ha-proxy 的源代码得到答案。你确实不能用 iptables 做到这一点。某些东西必须读取 HTTP header 来确定请求来自何处才能在本地路由。

关于node.js - 在具有多个域的同一服务器上托管 PHP 和 Node.js 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14012689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com