Apache和Nginx是Web服务器业务中的两个主要参与者,它们占互联网上Web流量的5%,但它们彼此不同。
Apache 是" Apache HTTP Server"。它是由Apache Software Foundation开发和维护的开源,高性能Web服务器软件。 Apache旨在创建符合当前HTTP标准的安全,健壮和高效的商业级Web服务器。
由于Apache的灵活性,体系结构简单性,电源兼容性和多平台支持,它仍然是服务器管理员中的首选。它几乎可以在所有操作系统上运行,例如Windows,UNIX,OSX,NetWare等。但是,它通常与Linux结合使用。
Apache成为了WWW(万维网)的骨干,它处于游戏的顶端,但是当NGINX投入业务时,服务器管理员的选择就改变了。
是的,我们可以说NGINX在许多方面都无法与功能丰富的Apache竞争,但是它的异步状态和单线程体系结构使其成为选择Apache的明智选择。
让我们看看Apache和Nginx之间的区别:
- Apache 是开放源代码的HTTP服务器,而 Nginx 是开放源代码,高性能的异步Web服务器和反向代理服务器。
- Apache 中的错误修复,支持,维护和应用程序开发,HTTP服务器由来自世界各地的用户社区管理和维护,由Apache Software Foundation协调,而 Nginx 由2011年成立的同名公司处理。
- 两者之间的主要区别在于它们如何处理客户请求。 Apache 提供了多种多样的多处理模块来处理客户端请求和Web流量,而 Nginx 则被设计为以最少的硬件资源同时处理多个客户端请求。
- 在 Apache 中,单线程仅与一个连接相关联,而 Nginx 中的单线程可以处理多个倾斜的连接。所有进程与其他连接一起放入事件循环中,并进行异步管理。此过程消耗较少的内存,从而提高了性能。
- Apache HTTP Server具有缺乏可伸缩性的多线程体系结构。而 Nginx 遵循异步事件驱动的方法来处理多个客户端请求。其事件驱动的体系结构旨在即使在流量很大的情况下也可以提高性能。
- Apache 服务器使用常规方法提供静态内容,并在Web服务器本身内部本地处理动态内容。另一方面, Nginx 无法在内部处理动态内容。它依靠外部流程来执行。
Apache与Nginx
Apache | Nginx |
---|---|
Apache可以在所有Unix之类的系统(例如Linux,BSD等)上运行,并且完全支持Windows。 | Nginx在类似Unix的现代系统上运行;但是它对Windows的支持有限。 |
Apache使用多线程方法来处理客户端请求。 | Nginx遵循事件驱动的方法来服务客户请求。 |
Apache无法在网络流量大的情况下同时处理多个请求。 | Nginx可以在有限的硬件资源下同时高效地处理多个客户端请求。 |
Apache在Web服务器本身内部处理动态内容。 | Nginx无法本地处理动态内容。 |
Apache被设计为Web服务器。 | Nginx既是Web服务器又是代理服务器。 |
模块是动态加载或卸载的,因此更加灵活。 | 自模块无法动态加载,必须在核心软件本身中进行编译。 |
一个线程只能处理一个连接。 | 单个线程可以处理多个连接。 |
Apache静态内容的性能低于Nginx。 | Nginx可以同时运行数千个静态内容连接,其速度是Apache的两倍,并且占用的内存更少。 |
分享笔记