什么是 Apache?

17 Mar 2025 | 6 分钟阅读

Apache 是免费且开源的 Web 服务器软件,全球约有40% 的网站使用它。Apache HTTP 服务器是其官方名称。它由Apache 软件基金会开发和维护。Apache 允许网站所有者通过网络提供内容。这就是为什么它被称为“Web 服务器”的原因。Apache Web 服务器最早、最可靠的版本之一发布于 1995 年。

如果有人想访问任何网站,他们会在浏览器地址栏中输入域名。Web 服务器将充当虚拟快递员,获取请求的文件。

Web 服务器的含义

邮件服务器、数据库服务器、Web 服务器文件服务器使用不同类型的服务器软件。所有这些应用程序都可以访问物理服务器上保存的许多文件,并将其用于多种目的。

Web 服务器的目的是通过互联网提供网站。它在客户端计算机和服务器之间充当中间人来实现这一目标。它可以响应每个用户的请求,从服务器检索内容。此外,它将此请求发送到 Web。

任何 Web 服务器最重要的任务之一是同时为 Web 的各种不同用户提供服务。Web 服务器可以执行用多种编程语言编写的文件,如JavaPythonPHP 等等。Web 服务器将这些文件转换为静态 HTML 文件。它在 Web 服务器浏览器中为这些文件提供服务。Web 浏览器可以被定义为负责良好客户端-服务器通信的工具。

Apache 的工作原理

Apache 不是任何物理服务器;它是在服务器上运行的软件。但是,我们将其定义为 Web 服务器。它的目标是在网站访问者浏览器(Safari、Google Chrome、Firefox 等)和服务器之间建立连接。Apache 可以被定义为跨平台软件,因此它可以在 Windows 服务器和 UNIX 上运行。

当任何访问者希望加载我们网站上的页面(例如,主页或“关于我们”页面)时,访问者的浏览器将向我们的服务器发送一个请求。Apache 将返回一个响应,其中包含每个请求的文件(图像、文件等)。客户端和服务器通过 HTTP 协议进行通信,Apache 负责两个机器之间安全顺畅的通信。

Apache 是一个高度可定制的软件。它包含基于模块的结构。各种模块允许服务器管理员打开或关闭附加功能。Apache 包含用于缓存、安全、密码身份验证、URL 重写和其他目的的模块。此外,我们可以使用一个名为.htaccess的文件来配置我们自己的服务器。它是 Apache 的支持配置文件。

其他 Web 服务器 vs. Apache

有许多不同于 Apache 的 Web 服务器。所有 Web 服务器应用程序都是为不同的目的构建的。Apache 具有一些竞争对手和替代品,并且它是最常用的软件。

Apache vs. NGINX

What is Apache

Nginx 的发音是Engine-X。它是一个较新的 Web 服务器应用程序,首次发布于 2004 年。Nginx 在网站所有者中越来越受欢迎。它被开发出来是为了解决 c10k 问题,这意味着使用线程来管理各种用户请求的 Web 服务器无法同时处理 10000 多个连接。

  1. 由于 Apache 使用基于线程的结构,因此流量非常大的网站的所有者可能会遇到性能问题。Nginx 定义了 c10k 问题,这可能是最幸运的问题之一。
  2. Nginx 包含事件驱动架构。它不会为所有请求创建新的进程。相反,它在单个线程中处理所有传入的请求。此进程处理实现请求实际处理的多个工作进程。Nginx 的事件模型以简单高效的方式在工作进程之间共享用户请求,因此它提供了更好的可扩展性。
  3. Nginx 可以是一个更好的选择,因为它可以使用最少的资源来管理高流量网站。更具体地说,它可以被 Airbnb、Pinterest、Hulu 和 Netflix 等许多知名网站使用。
  4. 然而,Apache 在 Nginx 方面提供了许多优势,因为它配置简单、环境对初学者友好,并且为中小型用户提供了各种模块。

Apache vs. Tomcat

What is Apache

Tomcat 可以被定义为一个 Web 服务器,它由 Apache 软件基金会改进。因此,Apache Tomcat 是它的官方名称。Tomcat 也是一个 HTTP 服务器。但是,它改进的是 Java 应用程序而不是静态网站。此 Web 服务器可以执行许多不同的 Java 应用程序,如 WebSocket、Java ELJSP(JavaServer Pages)和Java Servlet

  1. 具体来说,Tomcat 是为 Java 应用程序创建的,而 Apache 被创建为一个 HTTP 服务器。我们可以使用 Apache 与不同的编程语言(Perl、Python、PHP 等)结合使用,并借助适当的 Apache 模块(mod_perl、mod_python、mod_php 等)。
  2. 尽管我们可以使用 Tomcat Web 服务器来提供网页(静态),但与 Apache 服务器相比,它在此目的上的效率较低。Tomcat 可以预加载 Java VM 和其他 Java 库,而大多数网站不需要它们。
  3. 此外,与其他类型的 Web 服务器相比,Tomcat 的配置性较低。对于运行 WordPress,最好的选择是像 NGINX 或 Apache 这样的 HTTP 服务器。

Apache 的优点和缺点

Apache 可以是执行我们网站的通用且稳定的平台的绝佳选择。尽管如此,它也带来了一些我们需要了解的缺点。

优点

  1. 稳定可靠的软件。
  2. 免费且开源,即使用于商业用途。
  3. 定期安全补丁,频繁更新。
  4. 对初学者友好,易于配置。
  5. 由于模块化结构而灵活。
  6. 开箱即用,适用于 WordPress 网站。
  7. 跨平台(可在 Windows 服务器和 Unix 上实现)。
  8. 在出现任何问题时,可以轻松获得支持和庞大的社区。

缺点

  1. 在流量极大的网站上存在各种性能问题。
  2. 多种配置选项可能导致安全漏洞。

Apache 版本

版本 1.1

此版本的 Apache 于 2000 年获得 ASF 的批准。主要变化在于 1.0 版许可证中的“广告条款”。衍生产品不再需要包含广告材料(仅限文档)。

版本 2.0

Apache 2.0 版本于 2004 年 1 月被 ASF 采纳。其明确目标包括简化某些非 ASF 项目的应用。它可以提高与 GPL 软件的兼容性。它允许通过引用而不是在所有文件中列出来添加许可证。它还澄清了有关贡献的许可证。它要求对侵犯贡献者专利的贡献提供专利许可。

Apache 的安全性

与其他 Web 服务器一样,Apache 也可能被利用和黑客攻击。Apache 的主要攻击工具是 Slowloris。Slowloris 可以利用 Apache 软件中的错误。它可以建立多个套接字并保持所有这些套接字处于活动状态,并发送各种字节(称为“keep-alive headers”)来通知服务器系统已连接且没有遇到任何网络问题。

许多 Apache 开发人员已经通过多个模块定义了 Slowloris 来限制造成的损害。Apache 的各种模块,如mod_antiloris、mod_noloris、mod_security、mod_evasive、mod_qosmod_limitipconn,都建议用于降低 Slowloris 攻击成功的可能性。Apache 自 Apache 2.2.15 起将 mod_reqtimeout 模块作为开发人员推广的行政解决方案。

Apache 的开发

Apache HTTP 服务器版本

最新发布首次发布版本
03-02-2010 (1.2.42)06-06-19981.3
10-07-2013 (2.0.65)06-04-20022.0
11-07-2017 (2.2.34)01-12-20052.2
07-08-2020 (2.4.46)21-02-20122.4

Apache 项目是一项集体软件改进工作,旨在创建一个商业级、健壮、免费提供、功能丰富的源代码 HTTP 服务器实现。该项目由分布在世界各地的志愿者团队共同管理。这可以通过 Web 和 Internet 来完成,以开发、通信和计划任何服务器及相关文档。

该项目是 Apache 软件基金会的一部分。许多用户为该项目贡献了他们的代码、文档和想法。
Apache 2.4 版本支持 Tandem、NeXT、UX/A、TPF 和 BeOS 平台。


下一主题2D 形状