如何使用 Apache 作為反向代理 - 分步指南
已發表: 2023-07-23在本指南中將找到如何使用 Apache 作為反向代理的答案。 反向代理服務器是一種功能強大的工具,可充當客戶端和後端服務器(例如 Web 服務器或應用程序服務器)之間的中介。 與位於客戶端和互聯網之間的傳統正向代理不同,反向代理位於客戶端和一台或多台服務器之間。
當客戶端發出請求時,反向代理服務器代表客戶端將該請求轉發到適當的後端服務器。 然後它從後端服務器獲取響應並將其發送回客戶端。 此過程有效地向客戶端隱藏後端服務器的身份和內部結構。
反向代理具有多種優勢,包括通過保護後端服務器不直接暴露於互聯網來增強安全性、在多個服務器之間分配客戶端請求的負載平衡以及通過向客戶端提供緩存內容來提高性能的緩存。
目錄
區分正向代理和反向代理
- 代理方向:
- 轉發代理: 處理客戶端訪問互聯網資源的請求。 它位於客戶端和互聯網之間,將客戶端請求轉發到外部服務器。
- 反向代理:管理客戶端訪問組織網絡內資源的請求。 它位於客戶端和後端服務器之間,將客戶端請求轉發到適當的後端服務器。
- 客戶視角:
- 轉發代理: 客戶端通常不知道轉發代理的存在。 客戶端的請求被發送到代理服務器,目標服務器接收該請求,就好像該請求直接來自客戶端一樣。
- 反向代理: 客戶端直接將請求發送到反向代理,而不是後端服務器。 然後,反向代理代表客戶端將請求轉發到後端服務器。
- 使用案例:
- 轉發代理:通常用於內容過濾、訪問控制以及通過隱藏客戶端的 IP 地址來匿名化客戶端請求。
- 反向代理:主要用於負載平衡、SSL 終止、緩存以及為後端服務提供安全網關。
- 服務器視角:
- 正向代理:目標服務器看到來自正向代理的請求,而不是原始客戶端。 它不知道實際的客戶端發出請求。
- 反向代理:後端服務器將反向代理視為發出請求的客戶端。 他們不知道真正的客戶提出了最初的請求。
- 安全影響:
- 轉發代理:通過屏蔽客戶端的 IP 地址來增強客戶端隱私。 它還可以通過在惡意內容到達客戶端之前對其進行過濾來提供額外的安全層。
- 反向代理:充當後端服務器的屏障,使其內部結構對外部客戶端隱藏。 它有助於防止直接暴露於互聯網和潛在的攻擊。
- 部署地點:
- 轉發代理:部署在客戶端網絡內或客戶端設備上,以控制出站互聯網訪問。
- 反向代理:部署在組織的網絡邊緣、互聯網和後端服務器之間,管理入站客戶端請求。
探索反向代理的各種用例
反向代理提供了廣泛的用例,可增強 Web 應用程序和服務的性能、安全性和可擴展性。
反向代理的一些關鍵用例包括
- 負載平衡:反向代理可以跨多個後端服務器分發傳入的客戶端請求。 這有助於分配負載、防止服務器過載並確保更好的資源利用率。 負載平衡增強了應用程序的整體性能和響應能力。
- SSL 終止:反向代理可以代表後端服務器處理 SSL/TLS 加密和解密。 這可以減輕後端服務器資源密集型 SSL 處理的負擔,從而減少其工作負載並簡化證書管理。
- 緩存:反向代理可以將頻繁請求的資源存儲在緩存中。 當客戶端請求相同的資源時,反向代理直接提供緩存的內容,從而減少服務器負載並縮短響應時間。
- 網頁加速:通過緩存靜態內容和壓縮數據,反向代理可以加速客戶端網頁的加載,從而帶來更流暢的用戶體驗。
- 安全和 DDoS 保護:反向代理充當互聯網和後端服務器之間的保護屏障。 它們可以過濾和阻止惡意流量,防止分佈式拒絕服務(DDoS)攻擊,並隱藏後端服務器的真實IP地址以防止直接攻擊。
- Web 應用程序防火牆 (WAF) :反向代理可以充當 WAF,檢查傳入流量是否存在潛在威脅,例如 SQL 注入、跨站點腳本 (XSS) 和其他惡意活動。 它們有助於保護 Web 應用程序免受常見漏洞的影響。
- 單入口點:反向代理為外部客戶端提供訪問多個後端服務器的單一入口點。 這簡化了網絡架構,並允許更輕鬆地管理和擴展服務。
- 協議轉換:反向代理可以將請求從一種協議轉換為另一種協議。 例如,它們可以將 HTTP 請求轉換為 WebSocket 或其他特定於應用程序的協議,從而促進客戶端和服務器之間的通信。
- 內容壓縮和優化:反向代理可以在將傳出內容髮送到客戶端之前對其進行壓縮,從而減少數據傳輸大小並縮短頁面加載時間。
先決條件 - 將 Apache 配置為反向代理
安裝按位 SSH 客戶端
- 在瀏覽器中搜索Bitwise SSH Client 。 單擊鏈接 https://www.bitvise.com/ssh-client-download 並開始安裝
2. 安裝安裝程序後,從計算機中打開 .exe 文件並完成 Bitvise SSH 客戶端安裝。
如何使用bitwise登錄服務器SSH?
- 安裝完成後,將出現以下窗口。 輸入您的主機、端口和用戶名,從初始方法下拉列表中選擇密碼,然後單擊登錄。 將出現一個彈出窗口,要求輸入密碼。 輸入您的 SSH 密碼。
2. 登錄後,單擊“新建終端控制台”,終端將立即出現。
第 1 步 - 安裝 Apache
連接服務器
現在,要建立與服務器的連接並使用 APT 存儲庫刷新本地包索引,請在終端中輸入以下命令並按 Enter:
易於更新
更新需要一些時間才能完成,同時等待其完成。
如何在 Ubuntu 上安裝 Apache ?
- 在 Ubuntu 上安裝 Apache
現在,要從 Ubuntu 安裝 Apache,請輸入以下命令並按 Enter 鍵
apt install -y apache2
2.驗證 Apache 版本
安裝後,您可以選擇使用以下命令驗證 Apache 版本
apache2 -version
3.驗證 Apache 狀態
您還可以選擇使用以下命令驗證 Apache2 的狀態。 這可以幫助您快速確定服務器是否正在運行,以及是否存在任何需要注意的問題。
systemctl status apache2
正如您所觀察到的,屏幕上顯示的 (END) 狀態清楚地表明 Apache2 安裝成功。 此結果確認安裝過程已完成,沒有任何錯誤或問題。
4.啟用阿帕奇
要在 Ubuntu 上啟用 Apache2,請使用以下命令:
systemctl enabled apache2
5.啟動阿帕奇
如果您想在 Ubuntu 上重新啟動 Apache2,請在終端中使用以下命令:
systemctl start apache2
如何在Almalinux上安裝Apache?
- 檢查可用更新
要在 Almalinux 上安裝 Apache2,請通過運行“ dnf check-update”命令檢查可用更新。
dnf check-update
如果發現更新,請繼續使用“dnf update”更新您的 Linode。 此外,如果在此過程中更新了任何內核組件,請記住使用“reboot”重新啟動 Linode 以應用更改。
- 安裝阿帕奇
現在繼續安裝所需的 Apache 軟件包。
dnf install httpd httpd-tools
- 啟動阿帕奇
安裝 Apache 後,它不會自動啟動。 要啟動並啟用它,請使用systemctl實用程序。
systemctl start httpd
- 啟用阿帕奇
為了確保 Apache 在每次系統重新啟動時自動重新啟動,請啟用它。
systemctl enable httpd
- 檢查 Apache 狀態
使用“systemctl status”命令檢查 Apache 的狀態。 它應該顯示為活動且正在運行。
systemctl status httpd
第 2 步 - 為反向代理啟用 Apache 模塊
如何在 Ubuntu 上啟用它?
為了有效地利用 Apache Web Server 的反向代理,您必須啟用特定的 Apache 模塊,這些模塊對於支持反向代理服務器所需的附加功能至關重要。
- 確定所需的模塊
mod_proxy :mod_proxy 作為 Apache 的主要代理模塊,可以有效地處理連接和重定向。 它使 Apache 能夠充當底層後端服務器的網關,使其成為所有反向代理設置不可或缺的模塊。
mod_proxy_http :該模塊依賴於 mod_proxy,對於在代理服務器環境中支持HTTP和HTTPS請求是不可或缺的。 它使 Apache 能夠使用HTTP/HTTPS 協議熟練地處理 Web 應用程序的代理。
mod_ssl: mod_ssl 提供基本功能,為 Apache HTTP 服務器配備了對SSL v3和TLS v1.x協議的支持。 該模塊對於建立安全、加密的連接、確保數據完整性和增強 Web 服務器的安全性至關重要。
2.啟用模塊
現在,我們將使用a2enmod命令激活這些模塊:
sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod ssl
- 重新啟動 Apache2 服務器
啟用任何新的 Apache 模塊後,一定不要忽視重新啟動apache2服務器的關鍵步驟。 此步驟可確保更改生效並允許新激活的模塊完全集成到 Apache 服務器的配置中。
sudo systemctl restart apache2
- 驗證模塊
您可以使用以下命令確認這些模塊的活動狀態:
sudo apachectl -M
第 3 步 - Apache 反向代理配置
現在,配置Apache反向代理以接受來自 Internet 的請求並有效地將它們轉發到您選擇的資源。
- 禁用默認的 Apache
首先,您將禁用默認的 Apache 虛擬主機配置文件。 這可以使用以下命令來實現:
a2dissite 000-default.conf
- 創建一個新的配置文件
創建新的虛擬主機配置文件是自定義 Apache 以在同一服務器上為不同的 Web 應用程序或網站提供服務的基本步驟。 A 虛擬主機允許Apache管理多個域或子域,每個域或子域都有自己獨特的配置和設置。
要創建新的虛擬主機配置文件,請按照以下常規步驟操作:
選擇名稱:為虛擬主機文件選擇一個描述性名稱,通常以“.conf”擴展名結尾。 例如,“example.com.conf”或“cyberpanel.conf”。
導航到 Apache 的配置目錄:在大多數 Linux 發行版中,Apache 的配置文件存儲在“/etc/apache2/sites-available/”目錄中。 例如:
cd /etc/apache2/sites-available/
創建虛擬主機文件:使用文本編輯器(例如 nano 或 vi)創建新的配置文件。 例如:
sudo nano example.com.conf
輸入上述命令後,將出現以下文件:
配置虛擬主機:在文件中,使用<VirtualHost>指令定義 IP 地址和端口以接受特定虛擬主機的請求。 對於一個基本示例,允許默認HTTP端口(端口 80)上的所有 IP 地址,請使用以下命令:
<VirtualHost *:80> ServerName site1.com ServerAlias www.site1.com ServerAdmin [email protected] ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ProxyPass / http://127.0.0.1:8080/ ProxyPassReverse / http://127.0.0.1:8080/ ProxyRequests Off </VirtualHost>
配置過程首先使用<VirtualHost>命令定義虛擬主機,指定 Apache 接受的 IP 地址和端口號。 在本例中,使用通配符 * ,允許接受所有 IP 地址,而端口號設置為80 ,代表默認 HTTP 端口。 接下來,配置還包括以下幾項:
- ServerName :該指令指定與服務器關聯的域名。
- ServerAlias:使用 ServerAlias,您可以定義服務器可接受的其他名稱。
- ServerAdmin :ServerAdmin 指令設置服務器在返回給客戶端的錯誤消息中包含的聯繫電子郵件地址。
- ErrorLog :ErrorLog 設置 Apache 存儲遇到的錯誤的文件的名稱。
- CustomLog: CustomLog 設置 Apache 將客戶端請求記錄到服務器的文件的名稱。
- ProxyPass: ProxyPass 將遠程服務器映射到本地服務器的空間,並定義流量重定向的目標地址。 它允許 Apache 充當反向代理,將請求轉發到後端服務器並增強應用程序性能和負載分配。
- ProxyPassReverse: ProxyPassReverse 對於代理服務器至關重要,因為它會使用代理服務器的信息重寫後端服務器的原始位置、內容位置和 URI HTTP 響應標頭。 這可確保反向代理正確處理響應並防止後端服務器暴露於直接 Internet 訪問。
- ProxyRequests: ProxyRequests 防止 Apache HTTP 服務器被用作轉發代理,從而增強安全性。 使用 ProxyPass 時通常應將其設置為“關閉”,以避免將服務器誤用作開放代理並防止潛在的安全風險。
保存並退出:保存更改並退出文本編輯器。
啟用虛擬主機:使用 a2ensite 命令啟用新的虛擬主機配置:
sudo a2ensite example.com.conf
重新加載 Apache:要應用更改,請重新加載 Apache 以激活新的虛擬主機:
sudo systemctl reload apache2
完成這些步驟後,新的虛擬主機現已激活並準備為其指定的網站或應用程序提供服務。 需要注意的是,這些更改只有在啟用虛擬主機並重新加載 Apache 後才會生效。 此外,您可以將網站的文件放置在“DocumentRoot”指令指定的目錄中,以確保 Apache 為該特定虛擬主機正確提供內容。
驗證配置:確保反向代理配置按預期工作。 在Web瀏覽器中訪問指定的域名(例如“reverse-proxy.example.com”) ,Apache應該正確地將請求轉發到後端服務器。
請記住,您可能需要根據特定用例配置其他設置,例如處理SSL 證書、負載平衡或WebSocket 代理。 定期監控服務器的性能和安全性,確保平穩運行。
如何在 Cyberpanel 中使用 Apache 作為反向代理
在 Cyberpanel 中, Apache與後端 OpenLiteSpeed 的集成提供了兩全其美的方案,將 OpenLiteSpeed 的速度優勢與 Apache 豐富的功能相結合。 值得注意的是,利用 Apache 作為反向代理不會影響 ls 緩存的性能; 您將保持與單獨使用OpenLiteSpeed相同的性能水平。 在此配置中,OpenLiteSpeed 仍然負責將前端流量傳遞到 Apache,後者處理來自後端的請求。 此外, AlmaLinux和Ubuntu操作系統都支持這種集成。 通過閱讀本文,用戶可以充分利用在反向代理設置中結合 Apache 和 OpenLiteSpeed 所帶來的優勢。
登錄到您的 Cyberpanel 儀表板。
轉到網站選項單擊創建網站
輸入您的域名、電子郵件地址和 PHP 版本,然後選擇 Apache 作為反向代理。 輸入詳細信息後,單擊“創建網站”。 可能需要一些時間,然後就會被創建
該網站將在 Apache 中作為反向代理模式工作。 Openlitespeed 將在前端運行,而後端將運行 Apache。 因此,無論您使用的是 Cpanel 還是任何其他控制面板,所有 htaccess 規則都將像以前一樣工作
可以看到站點創建成功了。
對於此站點,您可以在我們的網站管理器中管理此站點的 Apache 配置。 單擊管理
到達這里後,單擊Apache Manager
甚至您也可以切換到純 Openlitespeed。 假設您決定不想在該網站的後端使用 Apache。 如果您想切換到純 Openlitespeed,請選擇PHP 版本,然後單擊切換到純 Openlitespeed。 如果使用 OpenLitespeed,也可以轉換為使用 Apache
這些是 Apache 配置。 如果您想編輯某些內容,您可以輕鬆編輯,但請確保您知道自己在做什麼,因為此處出現問題,您的網站將停止工作
在我們的 Apache 配置中,我們使用 PHP-FPM,因此這些是您正在使用的 PHP-FPM 配置
對於 PHP 配置轉到PHP並單擊編輯 PHP 配置。 如果你想編輯 PHP 配置。
如果您使用 Apache,那麼您還需要編輯 Php 配置,因此如果您安裝了 Apache,您將看到此 URL。
默認情況下,您將能夠編輯 Litespeed Php 的配置。 如果您想編輯 Apache 的配置,請單擊“編輯 APACHE 配置”
單擊“編輯 APACHE 配置”後,您可以使用 Litespeed 配置進行任何使用,例如 post_max_size、upload_max_filesize、max_execution_time 或其他。
編輯配置後確保單擊“保存更改”
同樣,您也可以使用高級編輯
同樣,您可以安裝 Apache 的 PHP 擴展。 只需點擊PHP->安裝擴展
如果您使用 Apache,那麼您還需要管理 APACHE 擴展,因此如果您安裝了 Apache,您將看到此 URL。
默認情況下,您將能夠安裝 Litespeed Php 的擴展。 如果您想安裝 Apache 擴展,請單擊管理 APACHE 擴展
相關內容
您還可以查看我們關於Apache 與 NGINX誰在性能方面獲勝?