介绍
第三方扩展是非常有用的补充。它们使您配置和使用服务器(如 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 的一些简单步骤:
- 准备服务器
首先,您需要确保您的云服务器已准备就绪。为此,您需要将操作系统 and 相关软件更新到最新版本。
使用以下命令升级您的应用程序:
|
1 2 3 |
apt install aptitude aptitude update aptitude -y upgrade |
- 安装基础软件包
一旦您准备好了服务器,您需要为其配备必要的工具。为此,您需要安装 build-essential 软件包。该软件包包含从源码安装软件所需的所有基本工具。您可以使用以下命令进行安装:
|
1 |
aptitude install -y build-essential |
- 获取模块和依赖项
最后,您需要安装模块和依赖项。您可以通过运行以下命令来执行此操作:
|
1 |
aptitude install -y apache2 apache2-bin libxml2-dev |
激活模块:如何配置带有代理连接的 Apache?
在开始配置 Apache 之前,您需要激活您的模块。这些模块将帮助您进行必要的配置并执行各种任务。
首先,您需要检查系统上已经有哪些模块在运行。不仅如此,您还需要确保所有模块都已正确安装并可以启用。运行此命令将显示 Apache 服务器上所有可用的模块:
|
1 |
a2enmod |

如您所见,响应以详细列表的形式向您显示所有可用的模块。浏览此列表并确定您要激活哪些模块。要让 Apache 知道,您可以使用以下命令,并在示例位置输入您想要的模块:
|
1 |
proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html lbmethod_byrequests |
另一方面,您也可以单独激活每个模块。为此,您可以使用以下命令:
|
1 2 3 4 5 6 7 8 9 10 |
a2enmod proxy a2enmod proxy_http a2enmod proxy_ajp a2enmod rewrite a2enmod deflate a2enmod headers a2enmod proxy_balancer a2enmod proxy_connect a2enmod proxy_html a2enmod lbmethod_byrequests |
某些模块可能在您的服务器上默认已激活。您可能会想知道如何确认它们已启用。为了确保所需的模块处于活动状态,您可以尝试激活它两次。这将保证该模块已启用。
- 修改默认配置设置
首先,您必须更改默认配置设置。为此,您必须访问默认配置文件 000-default.conf。该文件位于 /etc/apache2/sites-enabled 中。我们需要对其进行修改,使其获得代理功能。
您将首先打开 nano 文本编辑器来编辑默认的虚拟主机。您可以通过运行此命令来执行此操作:
|
1 |
nano /etc/apache2/sites-enabled/000-default.conf |
我们将 mod_virtual host 和 mod_proxy 统称为代理虚拟主机。现在,您可以应用以下配置设置。您可以根据您的系统和需求进行必要的更改:
|
1 2 3 4 5 6 7 |
<VirtualHost *:*> ProxyPreserveHost On ProxyPass / http://0.0.0.0:8080/ ProxyPassReverse / http://0.0.0.0:8080/ ServerName localhost </VirtualHost> |
按下 Ctrl + X 并输入 Y 确认后,即可保存并退出。
- 激活负载均衡功能
负载均衡 帮助您有效地分配代理上的连接。当您使用多个 backend 应用服务器而不是单个服务器时,这是一个非常实用的想法。负载均衡功能将分配连接或“负载”。
要启用此功能,您必须重复本指南前面提到的步骤。但是,在设置虚拟主机时,您需要使用以下配置设置:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost *:*> <Proxy balancer://mycluster> # 定义后端服务器: # 服务器 1 BalancerMember http://0.0.0.0:8080/ # 服务器 2 BalancerMember http://0.0.0.0:8081/ </Proxy> # 根据需要应用虚拟主机(VH)设置 # 但是,配置 ProxyPass 参数以 # 使用 "mycluster" 来平衡负载 ProxyPass / balancer://mycluster </VirtualHost> |
- 激活反向代理支持
如果您正在使用 SSL 连接和证书,您将需要使虚拟主机支持您的反向代理。此辅助虚拟主机必须具有以下设置。您需要执行前面步骤中的说明。您只需将配置选项替换为下面提到的选项即可:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<VirtualHost *:443> SSLEngine On # 设置 SSL 证书的路径 # 用法:SSLCertificateFile /path/to/cert.pem SSLCertificateFile /etc/apache2/ssl/file.pem # 代理连接的服务器,或者; # 应用服务器列表: # 用法: # ProxyPass / http://[IP 地址]:[端口]/ # ProxyPassReverse / http://[IP 地址]:[端口]/ # 示例: ProxyPass / http://0.0.0.0:8080/ ProxyPassReverse / http://0.0.0.0:8080/ # 或者,平衡负载: # ProxyPass / balancer://balancer_cluster_name </VirtualHost> |
You Windows 还需要启用 SSL 模块才能使上述配置生效:
|
1 |
sudo a2enmod ssl |
- 重启 Apache
所有配置均已完成。最后,您可以重启 Apache 服务器以应用更改。您可以通过运行以下命令来重启 Apache:
|
1 |
service apache2 restart |
结论
瞧!您已成功在 Apache 服务器中设置了反向代理网关。现在 Apache 将把传入的连接重定向到后端的应用服务器。
这样做的好处在于配置过程非常简单且直接。既然您已经知道了具体的操作步骤,那么在 Apache 中设置反向代理应该完全没有问题。
祝您使用愉快!

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