Node.js应用程序和wordpress在相同的VPS

所以目前我的linode(ubuntu 11.10)使用连接的侦听端口80的vhost中间件为我提供了三个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); 

不过,我现在想要添加一个wordpress安装到我的vps。 在过去对我来说,这意味着传统的Apache安装; 然而,我有点不确定如何node.js +一个不同的networking服务器(Apache或Nginx)应该交互。

任何想法,我应该如何处理托pipewordpress + node.js在同一个盒子?

我不确定任何其他解决scheme,但你可以尝试一个反向代理设置。 你可以在Nginx中做类似的事情,但是这个例子使用了Apache。

如果您安装Apache(例如)并将其configuration为侦听端口80,则还可以configurationApache的mod_proxy以将请求转发到您的Node.js应用程序。 这被称为反向代理。 但是,由于Apache将绑定到端口80,您需要为您的应用绑定一个不同的端口号。

对于每个Node.js应用程序,您需要使用ProxyPass条目configuration虚拟主机(请参阅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)上连接所有东西,那么你可以让它们并排运行,并确保在访问任何其他端口上的服务器时包含端口号。