Single

Nginx 和 Apache 各有什么优缺点?应该如何选择?

Apache 和 Nginx 是世界上最通用的两大开源Web服务器。他们正为超过50%互联网流量传输提供服务。两种解决方案都能处理各种的工作场景,并与其他软件协同工作,从而提供完善的Web技术栈。尽管 Apache 和 Nginx 有许多共通的特性,并不能将它们视为可以完全相互替代的。它们各有所长。了解使用场景对你重新评估选择你的web服务器非常重要。

存在就是理由,一般来说,需要性能的 WEB 服务,用 Nginx 。如果不需要性能只求稳定,那就 Apache 吧。后者的各种功能模块实现得比前者,例如 ssl 的模块就比前者好,可配置项多。

这里要注意一点, epoll ( freebsd 上是 kqueue )网络 IO 模型是 Nginx 处理性能高的根本理由,但并不是所有的情况下都是 epoll 大获全胜的,如果本身提供静态服务的就只有寥寥几个文件, Apache 的 select 模型或许比 epoll 更高性能。当然,这只是根据网络 IO 模型的原理作的一个假设,真正的应用还是需要实测了再说的。

如你所见,Apache 和 Nginx 都是很强力、灵活、能干的。决定哪个服务器对你来说最好,主要取决于什么功能可以解决你的特定需求,然后用你的方式去测试它。这两个项目在原生性能、功能,以及启动和运行每个解决方案所需的必要时间上有非常现实的冲突。然而,这些都是一系列取舍后的结果,不应该不假思索地随意使用。最后,没有通用的适合所有场景的 web 服务器,所以选择最切合你的目标的解决方案吧。