为什么要使用Apache或Nginx等?

时间:2012-12-29 15:35:19

标签: c++ c webserver

我已经分配了一个项目,要求我添加一些HTML页面服务。这个嵌入式系统(运行Linux CentOS 6.3)有一些额外的功能,但也有很多责任。

我考虑过Apache,但由于臃肿而抛弃了它,我调查了Nginx,但我现在也在回避这个问题。我似乎已经获得了更多的功能'结果,CPU使用量超出了我的需要。

有人可以告诉我为什么我不会自己使用异步套接字来实现HTTP协议吗?

我的具体需求是:

  1. 接收并解码GET和POST。

  2. 按要求发送CSS,JS和JPG文件。

  3. 根据GET / POST的解码输出标题,cookie,头部和正文数据。

  4. 鉴于我不需要这些网络服务器提供的无数东西,我是否天真地假设自己这样做?你会建议或警告什么?

3 个答案:

答案 0 :(得分:10)

基本上,您使用的是Web服务器,因为您可以在已经过测试的表单中获得所需的功能,比您的第一个代码更可靠,并得到其他大型社区的支持。如果Apache和nginx对你来说太重了(虽然nginx的特点是重负载的轻量级),特别是如果你期望的负载非常轻,那么请四处寻找其他选项。

Wiki有一整页comparisons of lightweight web servers.

答案 1 :(得分:1)

一个容易陷入的陷阱:思考“我不需要产品X中的所有功能,我只需要用我需要的功能编写自己的功能”,但最终只能完全重新实现产品X,一个新的 - 一次被发现的要求。

我有点怀疑可以运行CentOS的嵌入式系统是如此资源匮乏,以至于无法轻松运行Nginx(或者甚至是Apache,人们在Raspberry Pi上运行,只需进行适当的配置调整)关于您实际服务的页数的合理假设。我在奔腾266上运行它,其中包含256MB内存,为几个简单的PHP应用程序提供服务,这些应用程序每两秒钟提供大约一页,没有任何问题。我记得,它是相当模块化的,所以你可以选择不加载你认为不需要的功能。而且,稍后,当您的需求发生变化并且您发现需要它时,您可以将其重新插入:)

如果您确实真正关注资源消耗,请查看专为嵌入式应用程序设计的Web服务器。我听说Cherokee非常好。 Mongoose看起来很有希望。

答案 2 :(得分:0)

你可以继续前进,我从这个http://www.w3.org/Protocols/HTTP/HTTP2.html

开始