← Back to blog

mod_proxy 擴充功能指南:使用 Apache 作為反向代理

Category
mod_proxy 擴充功能指南:使用 Apache 作為反向代理

簡介

第三方擴充功能是非常有用的附加組件。這些功能可以讓您在設定和使用伺服器(例如 Apache HTTP)時的體驗變得更加簡單和便利。在需要的時候,您甚至可以使用 Apache 中的某些模組來運行反向代理。您可以從伺服器設定中移除一個層級,也可以使用模組來重定向連接。

在本指南中,我們將討論 Apache 以及與該伺服器平台相關的各種模組,例如 mod_proxy。我們還將介紹如何將其用作 反向代理 ,以將連接重定向到您的後端應用程式伺服器。

什麼是 Apache?

Apache 是一個 HTTP 伺服器 ,常用於與網頁相關的用途。但您也可以出於各種原因在多個平台上使用它。您可以按照我們的逐步教學在 Ubuntu 上安裝 Apache 網頁伺服器。此外,請參考本教學以了解如何使用 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 等 WebSocket 時非常有用。

mod_proxy_balancer

如果您希望使用負載平衡和叢集功能,則可以使用此模組。

mod_cache

正如預期的那樣,mod_cache 模組有助於快取目的。

mod_headers

您可以使用此模組來管理使用 HTTP 協定建立的標頭。

mod_deflate

此模組用於壓縮目的。

如果您想了解有關這些模組的更多詳細資訊,可以造訪 Apache 官方網站。官方文件也提供了更多關於 mod_proxy 和 Apache 本身的資訊。

如何安裝 Apache 和 mod_proxy?

以下是在您的系統上安裝 Apache 和 mod_proxy 的一些簡單步驟:

  1. 準備伺服器

首先,您需要確保您的雲端伺服器已準備就緒。為此,您需要將作業系統和相關軟體更新到最新版本。

使用以下指令來升級您的應用程式:

  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. 啟用負載平衡功能

負載平衡 有助於您有效地分配代理上的連線。當您使用多個後端應用程式伺服器而不是單個伺服器時,這是一個非常實用的想法。負載平衡功能將分配連線或「負載」。

要啟用此功能,您必須重複本指南前面提到的步驟。但是,在設定虛擬主機時,您需要使用以下設定:

  1. 啟用反向代理支援

如果您正在處理 SSL 連線與憑證,您將需要讓虛擬主機支援您的反向代理。此次要虛擬主機必須具有以下設定。您需要執行先前步驟中的說明。您只需將設定選項替換為以下提到的選項即可:

您還需要啟用 SSL 模組才能使上述設定生效:

  1. 重新啟動 Apache

所有設定皆已完成。最後,您可以重新啟動 Apache 伺服器以套用變更。您可以透過執行以下命令來重新啟動 Apache:

結論

太棒了!您已成功在 Apache 伺服器中設定了反向代理閘道。現在 Apache 將會把傳入的連線重新導向至您後端的應用程式伺服器。

最棒的是,設定過程非常簡單且相當直覺。既然您已經知道具體的步驟,那麼在 Apache 中設定反向代理應該完全不會有任何問題。

祝您使用愉快!

Akshay Nagpal

作者 · CloudSigma

留言

目前尚無留言。成為第一個留言的人吧。