Event MPM设计并不与Nginx完全相同,但显然是为了使长连接更可行和发送静态文件更快而设计的。我的理解是,事件MPM有些名称不当,因为:
- 虽然连接已传递到kqueue / epoll,
- 某些非常重要的模块,如mod_gzip和mod_ssl将阻塞/消耗线程,直到响应完成,
- 对于大文件来说是个问题,但对于PHP生成的HTML文档等可能没有问题。
不幸的是,Apache一直在失去市场份额,而大多数基准测试都对事件MPM进行了谴责。 基准测试是否有缺陷,还是事件MPM确实比Nginx表现差? 即使存在这些限制,在正常流量(非恶意)和较小文件下,它应该在某种程度上与Nginx竞争。 例如,与Nginx相比,在缓慢的连接上通过php-fpm提供服务的PHP生成文档应该具有一定的竞争力,因为文档将被缓冲(即使使用ssl和gzip也是如此)并异步发送。 在此工作负载下,使用压缩或不使用压缩的SSL和非SSL连接不应与Nginx有任何实质性不同。
那么为什么它在各种基准测试中表现不佳? 它有什么问题? 还是基准测试有问题? 是否有一个主要的网站在使用它作为权威机构的吸引力,即它可以发挥性能?