Nginx VS Apache

Nginx VS Apache

Nginx 和 Apache之间的区别

Apache 和 Nginx 是 Web 服务器业务中的两个主要参与者,它们占据了 Internet 上 5% 的 Web 流量,但它们彼此不同。
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 中的错误修复、支持、维护和应用程序开发由来自世界各地的用户社区管理和维护,并由 Apache 软件基金会协调,而 Nginx 由一家成立于 2011 年的同名公司负责。
两者之间的主要区别在于它们处理客户端请求的方式。虽然 Apache 提供了各种不同的多处理模块来处理客户端请求和网络流量,但 Nginx 旨在以最少的硬件资源同时处理多个客户端请求。
在Apache中,单线程只关联一个连接,而Nginx中的一个线程可以处理多个连接。所有进程都与其他连接一起放在一个事件循环中,并进行异步管理。此过程消耗更少的内存,从而提高性能。
Apache HTTP 服务器采用多线程架构,缺乏可扩展性。而 Nginx 遵循异步事件驱动的方法来处理多个客户端请求。其事件驱动的架构旨在即使在交通繁忙的情况下也能提高性能。
Apache 服务器使用传统方法提供静态内容,并在 Web 服务器本身内部处理动态内容。 Nginx,另一方面,不能在内部处理动态内容。它依赖于外部进程来执行。

Apache 与 Nginx

Apache Nginx
Apache 可在所有类 Unix 系统上运行,例如 Linux、BSD 等,并且完全支持 Windows。 Nginx 在现代类 Unix 系统上运行;但是它对 Windows 的支持有限。
Apache 使用多线程方法来处理客户端请求。 Nginx 遵循事件驱动的方法来处理客户端请求。
Apache 无法同时处理大量网络流量的多个请求。 Nginx 可以在有限的硬件资源下同时高效地处理多个客户端请求。
Apache 在 Web 服务器本身内处理动态内容。 Nginx 本身无法处理动态内容。
Apache 旨在成为网络服务器。 Nginx 既是 Web 服务器又是代理服务器。
动态加载或卸载模块,使其更加灵活。 由于模块不能动态加载,它们必须在核心软件本身内编译。
一个线程只能处理一个连接。 一个线程可以处理多个连接。
Apache 对于静态内容的性能低于 Nginx。 Nginx 可以同时运行数千个静态内容的连接,速度是 Apache 的两倍,而且使用的内存更少。