好问题!
有许多用 PHP 实现的网站和免费 Web 应用程序在 Apache 上运行,很多人都使用它,这样您就可以非常简单地混搭一些东西,此外,它是提供静态内容的一种简单的方式。 Node 是快速、强大、优雅且性感的工具,具有 V8 的原始功能和没有内置依赖项的扁平堆栈。
我还想要 Apache 的易用性/灵活性以及 Node.JS 的简洁和优雅,为什么我不能两者兼得?
幸运的是,随着代理通行证 http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypassApache 中的指令httpd.conf
将特定 URL 上的所有请求传送到 Node.JS 应用程序并不难。
ProxyPass /node http://localhost:8000
另外,请确保以下行未被注释掉,以便您获得正确的代理和子模块来重新路由 http 请求:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
然后在端口 8000 上运行您的 Node 应用程序!
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello Apache!\n');
}).listen(8000, '127.0.0.1');
然后您可以使用以下命令访问所有 Node.JS 逻辑/node/
url 上的路径,网站的其余部分可以留给 Apache 来托管您现有的 PHP 页面:
现在剩下的唯一一件事就是说服您的托管公司让您使用此配置运行!