首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我可以用Node.js代替Apache吗?

我可以用Node.js代替Apache吗?
EN

Stack Overflow用户
提问于 2011-03-18 06:29:13
回答 5查看 64.7K关注 0票数 154

我有一个网站运行在CentOS上使用常见的嫌疑(Apache,MySQL和PHP)。自从这个网站最初推出以来,它已经发生了很大的变化,现在我想用它来做一些更奇特的事情--即实时通知。据我所知,Apache对此处理得很糟糕。我想知道我是否可以用Node.js代替Apache (所以不是"LAMP“而是"LNMP")。

我试着在网上搜索解决方案,但没有找到。如果我没弄错的话,似乎大多数人都说Node.js可以同时取代Apache和PHP。不过,我有很多现有的PHP代码,所以我更喜欢保留它。

如果这还不是很明显,我很困惑,可以得到一些启发。非常感谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-03-18 06:41:57

如果你准备用JavaScript重写你的PHP,是的,Node.js可以取代你的Apache。

如果您在服务器和客户端之间放置一个以反向代理模式运行的Apache或NGINX实例,则可以在Node.js上的JavaScript中处理一些请求,并在Apache托管的PHP中处理一些请求,直到您可以用JavaScript代码完全替换所有的PHP。这可能是一个令人满意的中间选择:在Node.js中完成您的WebSockets工作,在Apache + PHP中完成更普通的工作。

票数 86
EN

Stack Overflow用户

发布于 2011-03-18 07:01:30

由于Node.js的事件/非阻塞架构,它可能比Apache更快,但你可能在寻找替代Apache某些功能的模块/库时会遇到问题。

Node.js本身是一个轻量级的底层框架,可以让你相对快速地构建web应用程序的服务器端内容和实时部分,但它提供了更广泛的配置选项和“经典”的面向web服务器的特性。

我想说的是,除非你想用像express.js这样的基于node.js的web应用框架来取代PHP,否则你应该继续使用Apache (或者如果你有性能问题,可以考虑迁移到Nginx )。

票数 26
EN

Stack Overflow用户

发布于 2011-11-09 22:41:30

我相信Node.js是web服务的未来,但是如果你有很多现有的PHP代码,Apache/MySQL是你最好的选择。Apache可以配置为代理请求到Node.js,或者Node.js可以代理请求到Apache,但我认为这两种情况都会损失一些性能,特别是在第一种情况下。不过,如果你不是在运营一个流量非常大的网站,那就没什么大不了的。

我刚刚注册了stackoverflow,我还不能对接受的答案发表评论,但今天我创建了一个简单的Node.js脚本,它实际上使用sendfile()通过HTTP协议提供文件。( accepted链接到的现有示例只使用纯TCP协议发送文件,而我找不到HTTP的示例,所以我自己编写了它。)

所以我想有人可能会觉得这很有用。通过sendfile() OS调用提供文件不一定比通过“用户空间”复制数据时更快,但它最终使用的CPU和RAM更少,因此能够处理比传统方法更多的连接。

链接:https://gist.github.com/1350901

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5346055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档