Apache和NGINX是网络服务器业务的两大选择,它们占据了互联网上5%的网络流量,但它们彼此不同。
Apache是“Apache HTTP服务器”。由Apache software Foundation开发和维护的开源、高性能web服务器软件。Apache被设计用来创建安全、健壮和高效的符合当前HTTP标准的商业级web服务器。
Apache仍然是服务器管理员的首选,因为它具有灵活性、架构简单性、power兼容性和多平台支持。它几乎可以在所有操作系统(例如Windows,UNIX,OSX,NetWare等)上运行。但通常与Linux结合使用。
Apache成为WWW(万维网)的支柱,处于web服务器软件顶端,但当NGINX投入业务时,服务器管理员的选择改变了。
是的,我们可以说NGINX在很多方面无法与功能丰富的Apache竞争,但它的异步状态和单线程架构使它成为除Apache之外更明智的选择。
1、Apache和NGINX的区别:
- Apache是一个开源的HTTP服务器,而Nginx是一个开源的高性能异步web服务器和反向代理服务器。
- Apache HTTP服务器中的Bug修复、支持、维护和应用程序开发都是由来自世界各地的用户社区管理和维护,并由Apache软件基金会协调,而Nginx则由一家成立于2011年的同名公司处理。
- 两者的主要区别在于处理客户端请求的方式。Apache提供了多种不同的多处理模块来处理客户端请求和web流量,而Nginx的设计目的是用最少的硬件资源同时处理多个客户端请求。
- 在Apache中,单个线程只与一个连接关联,而在Nginx中,单个线程可以处理多个连接。所有流程与其他连接一起放在一个事件循环中,并进行异步管理。这个过程消耗更少的内存,从而提高了性能。
- Apache HTTP服务器是一个多线程架构,缺乏可伸缩性。而Nginx采用异步事件驱动的方法来处理多个客户端请求。它的事件驱动架构被设计为即使在高流量下也能提供更好的性能。
- Apache服务器使用传统方法提供静态内容,并在web服务器本身内部处理动态内容。另一方面,Nginx不能在内部处理动态内容。它依赖于外部流程来执行。
2、Apache vs NGINX
Apache | NGINX |
---|---|
在Linux,BSD等所有Unix系统上运行,并且完全支持Windows。 | 在类似Unix的现代系统上运行;但是,它对Windows的支持有限。 |
使用多线程方法来处理客户端请求。 | 采用事件驱动的方法来处理客户端请求。 |
无法在web流量大的情况下同时处理多个请求。 | 可以在有限的硬件资源下同时高效地处理多个 客户端请求。 |
Apache在web服务器本身中处理动态内容。 | Nginx本身不能处理动态内容。 |
被设计为Web服务器。 | 既是Web服务器又是代理服务器。 |
动态加载或卸载模块,使其更加灵活。 | 由于模块不能动态加载,因此必须在核心软件本身中进行编译。 |
一个线程只能处理一个连接。 | 一个线程可以处理多个连接。 |
Apache对于静态内容的性能低于Nginx | Nginx可以同时运行数千个静态内容连接,速度是Apache的两倍,并且使用的内存更少。 |
本文链接:https://www.23thi.com/55.html
除非特殊声明,本站文章均为原创,转载请务必保留本文链接