为什么TUX Web服务器死了? Nginx / Lighttpd / Epoll / Kqueue会替换它吗?

时间:2013-11-15 00:25:13

标签: nginx linux-kernel cdn lighttpd epoll

我记得一个非常快的Linux内核模块,名为“TUX”,用于静态文件,以回答IIS优秀的Linux静态文件Web服务性能并解决“C10K问题”。现在我一直在看:

  1. Nginx的
  2. Lighttpd的
  3. 的CDN
  4. ...用于“快速静态文件服务”。如果您的操作系统具有正确的功能,快速提供静态文件并不困难。 Windows已经发明了IO完成端口,重叠I / O等等。

    由于安全隐患,Tux死了吗?这是Kqueue / Epoll与Sendfile等功能相结合的实验吗?提供100%静态内容的最佳解决方案是什么 - 比如50张左右的图像可以模拟“翻书”电影。

    我理解这是“服务器相关”的问题,但它也是理论上的。如果它纯粹是静态的,那么CDN真的会变得更好吗?

3 个答案:

答案 0 :(得分:3)

主要是因为IngoMolnár停止了工作。为什么?我认为这是因为内核版本2.2实现了sendfile(2)调用,该调用与({近似)Tux之前实现的巨大性能优势相匹配。请注意,Tux 2.0 Reference Manual的日期是2001年。

答案 1 :(得分:1)

提供静态文件有三个步骤:决定发送哪个文件,决定是否发送文件,发送文件。现在,Tux在发送文件方面做得非常好,所以决定发送哪个文件,以及决定是否发送文件的糟糕工作。决策是政策问题,应在用户空间内完成。添加sendfile,我可以在短时间内编写一个几乎与tux一样好的服务器,并在不重新编译内核的情况下添加内容。也许sql日志。只是考虑从内核进行的用户空间sql调用让我的眼睛抽搐。

答案 2 :(得分:1)

由于sendfile(),

不再需要Tux。 Nginx充分利用了这一点,IMO是静态或非静态内容的最佳Web服务器之一。我发现lighttpd存在内存问题,ymmv。

CDN的全部目的是让“网络服务器”更接近最终用户浏览器。这意味着更少的网络跳数和更少的往返延迟,您不必花费大量成本就可以在世界各地托管多个Web服务器并使用地理dns将用户发送到最近的网络服务器。请注意,由于这些Web服务器不在您的控制之下,因此它们可能会过载,如果网络过载,可以减少跳数较少的好处。 CDN通常是DDOS攻击的目标,您可能会陷入与您的内容无关的事情。