← Back to blog

mod_proxy 扩展指南:使用 Apache 作为反向代理

Category
mod_proxy 扩展指南:使用 Apache 作为反向代理

介绍

第三方扩展是非常有用的补充。它们使您配置和使用服务器(如 Apache HTTP)的体验变得更加简单和便利。在需要时,您甚至可以使用 Apache 中的某些模块来运行反向代理。您既可以从服务器设置中移除一个层级,也可以使用模块来重定向连接。

在本指南中,我们将讨论 Apache 以及与该服务器平台相关的各种模块,例如 mod_proxy。我们还将介绍如何将其用作 反向代理 来将连接重定向到您的后端应用服务器。

什么是 Apache?

Apache 是一个 HTTP 服务器,通常用于与 Web 相关的用途。但您也可以出于各种原因在多个平台上使用它。您可以按照我们的分步教程在 Ubuntu 上安装 Apache Web 服务器。此外,请遵循本教程以了解如何使用 Let’s Encrypt 保护您的 Apache 服务器。您还可以查看如何在 Ubuntu 20.04 上设置 Apache 虚拟主机.

您可以借助外部模块进一步探索 Apache 的功能和实现。这些是第三方模块,可用于执行与连接和配置相关的各种任务。例如,您可以使用 mod_rewrite 模块来执行基于规则的 URL 重写。另一个模块是 mod_proxy。后者在社区中很大程度上未被充分利用。这主要是因为许多人没有意识到其功能和应用的广泛性。顾名思义,mod_proxy 可以帮助您为后端服务器设置网关或代理。

让我们探索 mod_proxy 的细节,以及如何将其用作反向代理。

Mod_proxy:将 Apache 用作反向代理

正如您可能知道的,mod_proxy 是一个模块。它是 Apache 中的一个模块,可用于建立和重定向各种连接。您也可以像系统上的任何其他模块一样激活和配置它。mod_proxy 的独特之处在于它不仅仅是一个模块。事实上,它包含了一系列不同的模块,您可以在下面找到这些模块。每个模块都有其独特的功能。通过这种方式,mod_proxy 为您提供了丰富的功能多样性。

请看以下 mod_proxy 模块:

mod_proxy

这是主代理模块。在 Apache 中,您可以使用此模块来配置和管理各种连接。它还可以帮助您重定向连接。

mod_proxy_http

顾名思义,该模块处理 HTTP 和 HTTPS 协议。您可以使用此模块来实现这些协议的代理功能。

mod_proxy_ftp

Mod_proxy_ftp 适用于您处理 FTP 协议时。

mod_proxy_connect

此模块在您进行 SSL 隧道传输时非常有用。

mod_proxy_ajp

当您使用 AJP 协议时,可以使用 mod_proxy_ajp。

mod_proxy_wstunnel

这在您使用 WS 和 WSS 等 Web 套接字时非常有用。

mod_proxy_balancer

如果您希望使用负载均衡和集群功能,则可以使用此模块。

mod_cache

正如预期的那样,mod_cache 模块对缓存非常有用。

mod_headers

您可以使用此模块来管理使用 HTTP 协议创建的标头。

mod_deflate

该模块用于压缩目的。

如果您想了解有关这些模块的更多详细信息,可以访问 Apache 官方网站。官方文档还为您提供了有关 mod_proxy 和 Apache 本身的更多信息。

如何安装 Apache 和 mod_proxy?

以下是在系统上安装 Apache 和 mod_proxy 的一些简单步骤:

  1. 准备服务器

首先,您需要确保您的云服务器已准备就绪。为此,您需要将操作系统 and 相关软件更新到最新版本。

使用以下命令升级您的应用程序:

  1. 安装基础软件包

一旦您准备好了服务器,您需要为其配备必要的工具。为此,您需要安装 build-essential 软件包。该软件包包含从源码安装软件所需的所有基本工具。您可以使用以下命令进行安装:

  1. 获取模块和依赖项

最后,您需要安装模块和依赖项。您可以通过运行以下命令来执行此操作:

激活模块:如何配置带有代理连接的 Apache?

在开始配置 Apache 之前,您需要激活您的模块。这些模块将帮助您进行必要的配置并执行各种任务。

首先,您需要检查系统上已经有哪些模块在运行。不仅如此,您还需要确保所有模块都已正确安装并可以启用。运行此命令将显示 Apache 服务器上所有可用的模块:

a2enmod output

如您所见,响应以详细列表的形式向您显示所有可用的模块。浏览此列表并确定您要激活哪些模块。要让 Apache 知道,您可以使用以下命令,并在示例位置输入您想要的模块:

另一方面,您也可以单独激活每个模块。为此,您可以使用以下命令:

某些模块可能在您的服务器上默认已激活。您可能会想知道如何确认它们已启用。为了确保所需的模块处于活动状态,您可以尝试激活它两次。这将保证该模块已启用。

  1. 修改默认配置设置

首先,您必须更改默认配置设置。为此,您必须访问默认配置文件 000-default.conf。该文件位于 /etc/apache2/sites-enabled 中。我们需要对其进行修改,使其获得代理功能。

您将首先打开 nano 文本编辑器来编辑默认的虚拟主机。您可以通过运行此命令来执行此操作:

我们将 mod_virtual host 和 mod_proxy 统称为代理虚拟主机。现在,您可以应用以下配置设置。您可以根据您的系统和需求进行必要的更改:

按下 Ctrl + X 并输入 Y 确认后,即可保存并退出。

  1. 激活负载均衡功能

负载均衡 帮助您有效地分配代理上的连接。当您使用多个 backend 应用服务器而不是单个服务器时,这是一个非常实用的想法。负载均衡功能将分配连接或“负载”。

要启用此功能,您必须重复本指南前面提到的步骤。但是,在设置虚拟主机时,您需要使用以下配置设置:

  1. 激活反向代理支持

如果您正在使用 SSL 连接和证书,您将需要使虚拟主机支持您的反向代理。此辅助虚拟主机必须具有以下设置。您需要执行前面步骤中的说明。您只需将配置选项替换为下面提到的选项即可:

You Windows 还需要启用 SSL 模块才能使上述配置生效:

  1. 重启 Apache

所有配置均已完成。最后,您可以重启 Apache 服务器以应用更改。您可以通过运行以下命令来重启 Apache:

结论

瞧!您已成功在 Apache 服务器中设置了反向代理网关。现在 Apache 将把传入的连接重定向到后端的应用服务器。

这样做的好处在于配置过程非常简单且直接。既然您已经知道了具体的操作步骤,那么在 Apache 中设置反向代理应该完全没有问题。

祝您使用愉快!

Akshay Nagpal

作者 · CloudSigma

评论

暂无评论。发表第一条评论吧。