我们在一台机器上安装了Apache We服务器,该服务器也使用Perl提供页面。
对于一个项目,我决定使用Node.js而不是Perl/Ruby。我想知道是否可以使用Apache作为我的web服务器(所以它提供页面),并使用Node.js动态创建web页面(这是为我正在创建的web应用程序创建的)?
因此,换句话说,它们可以像Apache/Perl或Apache/PHP那样携手工作吗?
发布于 2013-01-18 12:43:12
不是的。NodeJS不像mod-perl和mod-php那样可以作为Apache模块使用,因此不可能在Apache之上运行node。正如hexist所指出的,可以将node作为单独的进程运行,并安排两者之间的通信,但这与您已经使用的LAMP堆栈有很大的不同。
作为Apache的替代品,如果您有许多并发连接,node将提供性能优势。还有一个巨大的模块生态系统,几乎适用于你能想到的任何东西。
从您的问题可以看出,您不清楚是需要在每次请求时动态生成页面,还是只需要定期生成新内容以用于缓存和服务。如果是后者,您可以使用单独的节点任务将内容生成到Apache将提供服务的目录中,但这与PHP或Perl非常不同。
Node不是提供静态内容的最佳方式。Nginx和Varnish在这方面更有效。当Node处理动态数据时,它们可以提供静态内容。
如果您正在考虑将node用于web应用程序,Express应该是您的首选。你可以完全在Node中实现web应用,但是Express (以及类似的框架,如Flatiron,Derby和Meteor)的设计是为了消除很多痛苦和单调乏味。尽管Express文档一开始可能看起来有点稀疏,但请查看仍然可以在此处获得的屏幕投射:http://expressjs.com/2x/screencasts.html,它们将让您很好地了解express提供了什么,以及它为什么有用。ExpressJS的github存储库还包含许多很好的示例,涵盖了从身份验证到组织应用程序的方方面面。
发布于 2018-03-01 04:12:10
你总是可以做一些shell-scripty的事情,比如:
#!/usr/bin/node
var header = "Content-type: text/plain\n";
var hi = "Hello World from nodetest!";
console.log(header);
console.log(hi);
exit;
https://stackoverflow.com/questions/14369865
复制相似问题