同一 vps 上的 Node.js 应用和 wordpress

同一 vps 上的 Node.js 应用和 wordpress

因此目前我的 linode(ubuntu 11.10)使用 connect 的 vhost 中间件监听端口 80 为我提供了三个 node.js 应用程序。下面是 vhost 如何设置域的示例:

var portfolio = require('./bootstrap-portfolio/lib/app.js');

var server = express();

server.use(express.vhost('sencedev.com',portfolio));
server.use(express.vhost('www.sencedev.com',portfolio));

server.listen(80);

但是我现在也想在我的 vps 上安装 wordpress。过去对我来说,这意味着传统的 apache 安装;但是我不太确定 node.js + 不同的 web 服务器(apache 或 nginx)应该如何交互。

关于我应该如何在同一个盒子上托管 wordpress + node.js,您有什么想法吗?

答案1

我不确定是否有其他解决方案,但您可以尝试反向代理设置。您可以在 Nginx 中执行类似操作,但示例使用 Apache。

例如,如果您安装了 Apache 并将其配置为监听端口 80,那么您还可以配置 Apache 的 mod_proxy 以将请求转发到您的 Node.js 应用程序。这称为反向代理。但由于 Apache 随后将绑定到端口 80,因此您需要为您的应用程序选择一个不同的端口号进行绑定。

对于每个 Node.js 应用程序,你需要配置一个ProxyPass带有条目的虚拟主机(请参阅http://httpd.apache.org/docs/2.2/mod/mod_proxy.html)。

<VirtualHost *:80>
  ServerName example.com
  ProxyPass / http://localhost:8080/
</VirtualHost>

现在,当 Apache 收到与该 VHost 匹配的请求时,它会将其转发到 Node.js 中间件,然后后者会为该请求提供服务并将其发送回 Apache。

当然,如果您不太介意让所有内容都连接到默认端口(80),那么您可以让它们并行运行,并确保在通过任何其他端口访问服务器时包含端口号。

相关内容