Nginx的速度,以及如何复制它

前端之家收集整理的这篇文章主要介绍了Nginx的速度,以及如何复制它前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我不仅从学术角度而非实际角度对此感兴趣;我不打算创建一个生产网络服务器来与Nginx竞争.我想知道的是Nginx究竟是如此之快.最热门的谷歌回应是this线程,但它只链接到一个神秘的幻灯片和不同的io策略的一般覆盖.所有其他结果似乎只是简单描述了Nginx的速度,而不是原因.

我尝试构建一个简单的erlang服务器来尝试与Nginx竞争,但无济于事; Nginx赢了.我的所有服务器都为每个请求生成一个新进程,使用该进程将文件读取到套接字,然后关闭文件并终止该线程.这并不复杂,但考虑到erlang的轻量级进程和底层的aio结构,我认为它会竞争,但在重压力测试下,Nginx仍能以300毫秒的平均值获胜.

什么是Nginx做我的简单服务器不是?我的第一个想法是将文件保存在主内存中,而不是在请求之间抛出它们,但文件系统缓存已经这样做了,所以我认为它不会产生那么大的差别.我错了吗?或者还有其他我想念的东西?

最佳答案
结果我的小测试服务器与Nginx相当竞争,一旦我告诉它以二进制模式而不是列表模式读取文件.

我认为对于不熟悉erlang和erlang服务器设计的人来说,在这个线程的其余部分中进行的大量讨论可能会让人感到困惑.我不想删除该线程,因为其中有关于Nginx的良好信息(我不能,它已经有答案),但我鼓励任何人研究制作基于erlang的服务器进行一些研究并写下很多测试,而不仅仅是你在这里阅读的内容.

猜你在找的Nginx相关文章