📜  Apache与NGINX | Apache和NGINX之间的区别

📅  最后修改于: 2021-01-07 05:55:58             🧑  作者: Mango

Apache和NGINX之间的区别

Apache和NGINX是Web服务器业务中的两个主要参与者,它们占Internet上Web流量的5%,但它们彼此不同。

Apache是“ Apache HTTP服务器”。它是由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 runs on all Unix like systems such as Linux, BSD, etc. as well as completely supports Windows. Nginx runs on modern Unix like systems; however it has limited support for Windows.
Apache uses a multi-threaded approach to process client requests. Nginx follows an event-driven approach to serve client requests.
Apache cannot handle multiple requests concurrently with heavy web traffic. Nginx can handle multiple client requests concurrently and efficiently with limited hardware resources.
Apache processes dynamic content within the web server itself. Nginx can’t process dynamic content natively.
Apache is designed to be a web server. Nginx is both a web server and a proxy server.
Modules are dynamically loaded or unloaded, making it more flexible. Since modules cannot be loaded dynamically, they must be compiled within the core software itself.
A single thread can only process one connection. A single thread can handle multiple connections.
The performance of Apache for static content is lower than Nginx. Nginx can simultaneously run thousands of connections of static content two times faster than Apache and uses little less memory.