什么是反向代理?反向代理服务器是位于后端服务器前面的中间连接点,它将客户端请求路由到这些服务器,并确保没有客户端直接与后端通信。这与转发代理不同,在转发代理中,代理位于客户端前面,并充当客户端和源服务器之间的中介。反向代理就像一个实际的端点,为您的系统提供额外的安全和控制层。,,反向代理是基本的系统管理概念之一,可以帮助您提高系统的可伸缩性、性能、弹性和安全性。让我们来看看一些最流行的反向代理用例。,在我们开始之前,您需要:,在本指南中,我们将使用 Apache Web 服务器来创建反向代理的工作概念。Apache 带有一些方便的扩展模块,支持反向代理解决方案。
首先,连接到您的服务器并从 APT 存储库更新本地包索引:,现在让我们apache2从官方 Ubuntu 20.04 存储库安装软件包:,安装完成后,您可以通过检查其版本来验证 Apache 是否已安装:,,也可以apache2使用以下命令检查状态:,,如您所见,apache2 在您安装后立即处于活动状态并正在运行。您可以通过请求默认的 Apache 索引页面来执行抽查以验证它是否按预期工作。只需在网络浏览器中输入服务器的 IP 地址,然后按回车键:,,如果您不知道自己的 IP 地址,请使用以下命令获取它:,此命令将显示计算机上可用的所有网络接口上的所有已配置 IP 地址,包括公共网络接口的 IP 地址。,要将反向代理与 Apache Web Server 一起使用,您需要启用特定的 Apache 模块以支持反向代理服务器所需的附加功能。我们的场景需要以下模块:,现在让我们使用a2enmod命令启用这些模块:,每次启用新的 Apache 模块时,不要忘记重新启动 apache2 服务器:,您可以使用以下命令验证这些模块是否处于活动状态:,现在是时候配置 Apache 反向代理以接受来自 Internet 的请求并将它们转发到您选择的资源。您可以将反向代理请求转发到任何您想要的地方,包括其他服务器,但我们将使用本地网络用于教育目的。,000-default.conf首先,让我们使用以下命令禁用默认的 Apache 虚拟主机配置文件:,现在使用以下配置文本cherry.conf在目录中创建一个新的虚拟主机配置文件:/etc/apache2/sites-available,<VirtualHost>我们使用包含 IP 地址和 Apache 为该虚拟主机接受的端口号的命令开始我们的配置文件。在这种情况下使用元字符*,因为所有 IP 地址都被接受,而端口号80代表默认的 HTTP 端口。配置继续以下项目:,保存配置文件并使用以下命令启用新的虚拟主机:,配置完成后,不要忘记重新启动 apache2 以激活更改:,您的反向代理配置现已完成,但我们仍然缺少一个将在端口 8080 上侦听的 Web 应用程序,因为我们的ProxyPass指令将传入请求转发到此目的地。
为此,我们可以使用一个简单的 Flask 应用程序。让我们先安装 python3 和 pip 包管理器:,安装完成后,继续通过pip安装Flask:,现在我们准备创建一个简单的 Flask Web 应用程序。让我们称之为app.py:,在下面的 Python 代码中,我们导入 Flask 库,实例化 Flask 应用程序并在“/”路由上调用 index() 函数:,将 Python 脚本保存在您的工作目录中,并将 FLASK_APP 环境变量设置为 app.py,以便 Flask 知道在哪里实例化您的 Web 应用程序:,现在您已准备好运行您的 Flask 应用程序。让我们通过将标准输出和标准错误输出重定向到文件来作为后台作业在端口 8080 上运行它/dev/null以保持我们的终端清洁:,现在打开浏览器并尝试通过标准 HTTP 80 端口连接到您的 IP 地址:,,您刚刚向 IP 地址上的端口 80 发送了一个 HTTP GET 请求,并且您的请求已被 Apache 反向代理转发到端口 8080,您的 Flask 应用程序在此处发回响应。恭喜,您的 Apache 反向代理配置正在运行!,通常,您希望对您的应用程序流量进行 SSL 加密。您可以使用免费的 Let’s Encrypt TLS 证书使用 Apache 反向代理配置 SSL/TLS 加密。
首先,安装允许您自动颁发和安装证书的 Certbot ACME 客户端:,接下来,为 Certbot 安装 Apache 插件以简化安装过程:,Let’s Encrypt 不会为没有域名的服务器颁发 TLS 证书。要继续配置证书,您需要从任何域名提供商处购买域名并将其指向您服务器的 IP 地址。或者,您可以使用自定义 DNS 名称,该名称可以在 Cherry Servers 为每台服务器设置。,为此,请转到您的客户端,访问服务器的网络选项,然后按管理 IP 上的“编辑地址”按钮:,,您现在可以输入自定义 DNS 名称并按更新:,,这样做之后,子域名reverse-proxy.cloud.cherryservers.net将可用于您的服务器。您现在可以使用此子域名而不是 IP 地址来查询它:,,您还应该将此子域名添加到您的 cherry.conf 配置文件中:,现在您可以使用以下命令开始 TLS 证书配置:,首先,您将被要求输入您将接收续订和安全通知的电子邮件地址:,,接下来,您需要阅读并同意 Let’s Encrypt 服务条款:,,决定您是否愿意接收来自 Let’s Encrypt 的新闻和产品更新:,,Certbot 将自动从您的 Apache 虚拟主机配置文件中读取 ServerName 和 ServerAlias 变量。选择要用于 HTTPS 查询的正确域名并继续安装:,,Certbot 现在将为 SSL 连接创建一个新的 Apache 虚拟主机并为您生成证书。
最后,系统会询问您是否要自动将所有 HTTP 流量重定向到 HTTPS。为了简单起见,选择No redirect:,,就是这样——您现在拥有一个功能齐全的 Apache 反向代理,带有 SSL 加密!您现在可以通过安全的 HTTPS 连接访问您的 Web 代理服务器:,,?专业提示:您可以通过在一行中使用 Certbot 和一些强制参数来进一步简化 TLS 证书安装:,如果您想更深入地了解 Certbot 做了什么,请随时查看新创建的 Apache 虚拟主机:,您可以看到 Apache 检查您是否有可用的 mod_ssl,如果有,它会使用给定的虚拟主机配置来接受通常为 HTTPS 流量保留的端口 443 上的所有 IP 地址。,虚拟主机几乎是我们原始配置的副本,cherry.conf但多了三行。它包括对 SSL 证书文件的引用并导入 SSL 配置文件以使用一些必需的 SSL 设置来补充您的虚拟主机配置。,在本文中,我们了解了什么是反向代理及其使用方法。我们还建立了 Apache 反向代理的工作概念,使用 SSL 加密来提供额外的安全层。您可以使用 Apache Web Server 构建更多的反向代理用例,所以请不要犹豫,在Apache 官方文档页面上了解更多关于这个基本系统工程概念的信息。,
,什么是反向代理?反向代理服务器是位于后端服务器前面的中间连接点,它将客户端请求路由到这些服务器,并确保没有客户端直接与后端通信。这与转发代理不同,在转发代理中,代理位于客户端前面,并充当客户端和源服务器之间的中介。反向代理就像一个实际的端点,为您的系统提供额外的安全和控制层。,,<VirtualHost>我们使用包含 IP 地址和 Apache 为该虚拟主机接受的端口号的命令开始我们的配置文件。在这种情况下使用元字符*,因为所有 IP 地址都被接受,而端口号80代表默认的 HTTP 端口。配置继续以下项目:
如何使用SSL/TLS加密安装和配置Apache反向代理服务器
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《如何使用SSL/TLS加密安装和配置Apache反向代理服务器》
文章链接:https://zhuji.vsping.com/501748.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
文章名称:《如何使用SSL/TLS加密安装和配置Apache反向代理服务器》
文章链接:https://zhuji.vsping.com/501748.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。