Apache 是互聯網上最受歡迎的 Web 服務器之一。除了基本的網頁服務,它還能通過模塊擴展出豐富的功能。其中一個重要用途就是將 Apache 配置成負載均衡器,用于在多個后端服務器之間分配流量,提升網站的性能和穩定性。Google Gemini中國版調用Google Gemini API,中國大陸優化,完全免費!https://gemini.danielmind.tech/
? 什么是負載均衡?
負載均衡是一種將系統或服務器接收到的請求均勻分配到多個節點上的技術。它的目標是:
-
優化資源使用
-
最大化吞吐量
-
減少響應時間
-
防止任意一個服務器過載
在高流量場景下,比如節假日的電商網站,這種技術尤為關鍵。
通過負載均衡,系統能把來自客戶端的請求智能地分發給最空閑或最健康的服務器節點,從而避免單點故障,提高應用的可用性和穩定性。
🎯 Apache 負載均衡的優勢
-
支持 L4(傳輸層)和 L7(應用層)負載均衡
-
提高系統可擴展性
-
支持會話保持(Session Persistence)
-
可在單個實例中進行端口到端口的路由
-
節省帶寬資源
-
提升用戶訪問體驗
-
快速部署,節省運維時間
-
支持拒絕異常請求,提高安全性
-
多服務器容災能力強
🧰 配置環境說明
在這個配置示例中,我們將使用三臺運行 Ubuntu 系統的服務器:
-
web1.example.com
:后端服務器1 -
web2.example.com
:后端服務器2 -
balancer.example.com
:負載均衡器
谷歌 Gemma 3 27b,媲美 o1-preview,超低硬件要求!本地部署教程! - 你,mdjsjd生活 - 分享免費實用軟件、有趣網站、各種黑科技!Gemma 3 是目前 Google 最強的開源模型,可以處理文本、圖像,甚至是短視頻!圖表分析此圖表按 Chatbot Arena Elo 得分對 AI 模型進行排名。得分越高(數字越大),表...https://life.mdjsjd.me/archives/89.html
🛠? 步驟 1:更新系統并安裝 Apache
在三臺服務器上執行以下命令,更新系統并安裝 Apache:
apt update -y
apt upgrade -y
apt install apache2 -y
systemctl start apache2
systemctl enable apache2
🖥? 步驟 2:配置兩個后端服務器
? 配置 web1(后端服務器1)
創建示例網頁:
nano /var/www/html/web1.html
內容如下:
<title>Apache Web Server1</title>
<h2>This is Apache Web Server 1 Page!</h2>
配置虛擬主機:
nano /etc/apache2/sites-enabled/web1.conf
<VirtualHost *:80>ServerName web1.example.comDocumentRoot /var/www/htmlDirectoryIndex web1.html
</VirtualHost>
重啟 Apache:
systemctl restart apache2
? 配置 web2(后端服務器2)
創建示例網頁:
nano /var/www/html/web2.html
內容如下:
<title>Apache Web Server2</title>
<h2>This is Apache Web Server 2 Page!</h2>
配置虛擬主機:
nano /etc/apache2/sites-enabled/web2.conf
<VirtualHost *:80>ServerName web2.example.comDocumentRoot /var/www/htmlDirectoryIndex web2.html
</VirtualHost>
重啟 Apache:
systemctl restart apache2
🌐 步驟 3:配置負載均衡服務器
在 balancer.example.com
上啟用相關模塊:
a2enmod proxy
a2enmod proxy_http
a2enmod proxy_balancer
a2enmod lbmethod_byrequests
systemctl restart apache2
確認模塊是否啟用:
apachectl -M | grep proxy
配置負載均衡虛擬主機:
nano /etc/apache2/sites-enabled/loadbalancer.conf
內容如下:
<VirtualHost *:80>ServerName balancer.example.com<Proxy balancer://webserver>BalancerMember http://web1.example.comBalancerMember http://web2.example.comProxySet stickysession=ROUTEID</Proxy>ProxyPreserveHost OnProxyPass / balancer://webserver/ProxyPassReverse / balancer://webserver/
</VirtualHost>
保存后重啟 Apache:
systemctl restart apache2
🔍 測試負載均衡效果
打開瀏覽器訪問:
👉 http://balancer.example.com
第一次刷新頁面時,應該會看到來自 web1 的頁面。再次刷新幾次后,應該能看到 web2 的頁面,說明請求已在兩個服務器之間輪換分發。
📚 補充說明:負載均衡類型
常見的三種負載均衡方式包括:
-
DNS 輪詢:通過 DNS 將請求輪流指向不同服務器
-
L3/L4 負載均衡:基于 IP 或 TCP 層進行轉發
-
L7 負載均衡:基于應用層協議(如 HTTP)進行智能分發