6

我被分配了一个项目,该项目需要我添加一些 HTML 页面服务。这个嵌入式系统(运行 Linux CentOS 6.3)有一些额外的可用资源,但也已经承担了许多责任。

我考虑过 Apache,但由于臃肿而放弃了它,我研究了 Nginx,但现在也回避了。似乎我获得了更多的“功能”,因此 CPU 使用率超出了我的需要。

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

我的具体需求是:

  1. 接收和解码 GET 和 POST。

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

  3. 根据 GET/POST 的解码输出 header、cookie、head 和 body 数据。

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

4

3 回答 3

9

基本上,您使用 Web 服务器是因为您可以通过已经过测试的形式获得所需的功能,比您的第一个代码可能更可靠,并且得到大量其他人的支持。如果 Apache 和 nginx 对你来说太重了(尽管 nginx 的特点是它对于重负载的轻量级),特别是如果你期望的负载非常轻,那么请四处寻找其他选择。

Wiki 有一整页的轻量级 Web 服务器比较。

于 2012-12-29T15:43:36.113 回答
1

一个容易掉入的陷阱:认为“我不需要产品 X 中的所有功能,我只需编写自己需要的功能”,结果最终完全重新实现了产品 X,这是一个新发现的需求一次。

我有点怀疑,一个可以正常运行 CentOS 的嵌入式系统资源匮乏,以至于它不能舒适地运行 Nginx(甚至是 Apache,人们在 Raspberry Pi 上运行它并通过适当的配置调整就可以了),给出合理的假设:您实际服务的页面数量。我在 Pentium 266 上运行它,它有 256MB 的 RAM,为一些简单的 PHP 应用程序提供服务,这些应用程序大约每两秒提供一个页面,没有任何问题。我记得,它是相当模块化的,所以你可以选择不加载你认为不需要的功能。而且,稍后,当您的需求发生变化并且您发现确实需要它时,您可以将其重新插入 :)

如果您真正关心资源消耗,请查看专为嵌入式应用程序设计的 Web 服务器。我听说切诺基很不错。猫鼬看起来也很有前途。

于 2012-12-29T15:50:47.197 回答
0

你可以走得更远,我从这个http://www.w3.org/Protocols/HTTP/HTTP2.html开始

于 2012-12-29T15:58:41.677 回答