哪个有更好的代码库可供学习:nginx或lighttpd?

时间:2010-06-19 04:54:45

标签: c nginx lighttpd

主要目标是从流行的Web服务器代码库(在C中实现)中学习,优先考虑结构/设计而不是整个代码中的巧妙技巧。

我没有包含Apache,因为它的代码库比上面提到的两个大一个数量级。

3 个答案:

答案 0 :(得分:5)

Ngxinx可能只是我遇到过的最好的直接代码库。我已经阅读了大量的Apache,我总是感觉不洁,这是一个单一的混乱。

您不仅可以通过探索Nginx来了解Web服务器,而且几乎是在Unix和Direct-c下编写网络软件的最佳实践,从代码架构到元编程技术。

我没有听到关于Lighttpd的好消息,但与Nginx相比,它的范围有限。因此,如果我是你,我会花时间在nginx上。尽管lighttpd的有限范围可能对您有益,但作为第一个研究对象。

答案 1 :(得分:3)

诚实地说,在任何值得盐的代码库中都会出现巧妙的技巧。然而,您可能不想听到的答案是,研究两者可能会很好,这样您就可以通过交叉点来学习。替代方案可能会让你陷入“lighthttpd”方式或“nginx”方式等方面。

答案 2 :(得分:0)

  

我没有包含Apache,因为它的代码库比上面提到的两个大一个数量级。

实际上Apache代码非常易读。它有很大的代码库,因为它做了很多事情。但它结构合理,易于理解。您还可以查看APR库(Apache Portable Runtime),它有许多值得学习的小东西。

IMO如果你想学习编程,你应该从低调的项目开始 - 而不是HTTPd,但更简单。

nginx和LightHTTPd(就像Apache一样)都是生产质量的软件,意味着非常陡峭的学习曲线。不幸的是,学习通常意味着挖掘档案以了解为什么会这样 - 这与任何成熟项目的年龄一致。

如果您只是进入C和学习设计,您可能需要检查FreeBSD或其衍生产品。根据我的经验,这是一个更好的起点:那里有许多工具和所有口径的库。而且他们的TODO列表永远不会是空的,这可以作为从哪里开始的指南。