因此目前我的 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),那么您可以让它们并行运行,并确保在通过任何其他端口访问服务器时包含端口号。