HAproxy 是一個開源輕量級包,為基於 TCP 和 HTTP 的程序提供高可用性和負載平衡。這會在 Web 服務器和應用程序服務器之間分配負載。 HAproxy 在幾乎所有 Linux 發行版上都可用。這是一種流行的負載均衡器,因為它的效率、可靠性以及低內存和 CPU 使用率。本文介紹如何在您的 Ubuntu 系統上安裝和配置 HAproxy。

我已經設置了3台機器。 在一台服務器上安裝 HAproxy,在兩台服務器上安裝 Web 服務器 Apache。然後,HAproxy 服務器充當負載平衡器,將負載分配給 Apache Web 服務器。

筆記: 本文中給出的步驟和命令已經過測試 Ubuntu 20.04 LTS(Focal Fossa)。 同樣的過程也適用於 Debian 和 Mint 發行版。

網絡詳情

我使用 3 台 Ubuntu 服務器;都在同一個網絡上。以下是服務器詳細信息:

主機名:HAproxy,IP地址:192.168.72.157 (前端服務器)

主機名:web-server1,IP地址:192.168.72.158 (後端服務器)

主機名:web-server2,IP地址:192.168.72.159 (後端服務器)

筆記: 所有服務器都需要 sudo 權限。

我將一台機器配置為負載均衡器,另外兩台作為 Web 服務器。 HAproxy 服務器成為前端服務器,接收來自用戶的請求並將它們轉發到兩個 Web 服務器。 Web 服務器成為後端服務器並接收這些轉發的請求。

設置如下所示:

Web 服務器設置 – 後端服務器

在本節中,我們將設置兩個 Web 服務器(網絡服務器 1 什麼時候 網絡服務器 2) 作為後端服務器。

在 web-server1 (192.168.72.158) 上

在您的網絡服務器上:將主機名和 IP 地址替換為您的 Web 服務器的相關 IP 地址和主機名。

1.配置hosts文件

存在 網絡服務器 1, 編輯 /etc/主機 文檔:

$ 須藤 納米 /ETC/主持人

然後添加一個主機名條目 代理服務器 服務器是:

HAproxy 主機名 HAproxy IP 地址

在我們的場景中,它看起來像這樣:

HA-代理 192.168.72.157

2. 設置 Apache Web 服務器

在終端中使用以下命令安裝 Apache Web 服務器:您也可以訪問我們的帖子 如何在 Apache Linux 上安裝 Web 服務器。

$ 須藤 簡單的 安裝 阿帕奇 2

接下來,在終端中使用以下命令啟用並啟動 Apache 服務:

$ 須藤 系統控制 效力 阿帕奇 2
$ 須藤 systemctl 啟動 apache2

為了 網絡服務器 1 在終端中使用以下命令:

$ 迴聲

你好!這是 webserver1:192.168.72.158

| | 須藤 /在哪裡/全球資訊網/html/索引.html

如果您的系統正在運行防火牆,則必須允許 Apache 流量通過。

$ 須藤 ufw允許 80/TCP

然後重新加載防火牆配置。

$ ufw重新加載

然後嘗試通過在您的網絡瀏覽器中輸入來訪問該站點 https:// 後跟 Web 服務器的 IP 地址或主機名。

網址:/// 主機名或 IP 地址

或者,您可以使用 curl 命令來測試您的網頁。

$ 捲曲 主機名或 IP 地址>

在網絡服務器 2 192.168.72.159 上)

在第二個 Web 服務器上執行以下步驟。將主機名和 IP 地址替換為您的 Web 服務器的相關 IP 地址和主機名。

1.配置hosts文件

存在 網絡服務器 2, 編輯 /etc/主機 文檔:

$ 須藤 納米 /ETC/主持人

然後添加一個主機名條目 代理服務器 服務器是:

HA-代理 192.168.72.157

2. 安裝 Apache Web 服務器

在終端中使用以下命令安裝 Apache Web 服務器:

$ 須藤 簡單的 安裝 阿帕奇 2

接下來,在終端中使用以下命令啟用並啟動 Apache 服務:

$ 須藤 系統控制 效力 阿帕奇 2
$ 須藤 systemctl 啟動 apache2

在終端中使用以下命令為 web-server2 創建一個索引文件:

$ 迴聲

你好!這是 webserver2:192.168.72.159

| | 須藤 /在哪裡/全球資訊網/html/索引.html

在防火牆中允許 Apache。

$ 須藤 ufw允許 80/TCP

然後重新加載防火牆配置。

$ ufw重新加載

然後嘗試通過在您的網絡瀏覽器中輸入來訪問該站點 https:// 後跟 IP 地址或主機名。

網址:/// 主機名或 IP 地址

或者,您可以使用 curl 命令來測試您的網頁。

$ 捲曲 主機名或 IP 地址>

您的 Apache Web 服務器現已準備就緒。

HAproxy 負載平衡器設置 – 前端服務器

在本節中,我們將為我們的應用程序設置一個 HAproxy 負載均衡器。 網絡服務器此 HAproxy 服務器充當前端服務器並接受來自客戶端的傳入請求。

存在 代理服務器 服務器(192.168.72.157),請執行以下步驟來設置負載均衡器:

1.配置hosts文件

編輯 /etc/主機 在終端中使用以下命令文件:

$ 須藤 納米 /ETC/主持人

在兩者中添加以下主機名條目 阿帕奇 Web 服務器和自己的主機名

192.168.72.157 HA 代理
192.168.72.158 網絡服務器 1
192.168.72.159 網絡服務器 2

保存並關閉 /etc/主機 文檔。

安裝 HAproxy 負載均衡器

在這一步中,我們將在我們的一台 Ubuntu 服務器 (192.168.72.157) 上安裝 HAproxy。為此,請在終端中使用以下命令更新 apt:

$ 須藤 apt-get 更新

然後更新包如下:

$ 須藤 apt-get 升級

在終端中使用以下命令安裝 HAproxy:

$ 須藤 須藤 簡單的 安裝 代理服務器

安裝 HAproxy 服務器後,您可以在終端中使用以下命令對其進行檢查:

$ 代理服務器 -v

您可以看到系統上安裝的 HAproxy 的版本,並確認 HAproxy 已成功安裝。

將 HAproxy 配置為負載均衡器

在下一節中,我們會將 HAproxy 配置為負載均衡器。為此, 編輯 /etc/haproxy/haproxy.cfg。 文檔:

$ 須藤 納米 強的>>ETC/代理服務器/haproxy.cfg強的>

將以下行添加到 haproxy.cfg 文件,將 IP 地址替換為您自己的。

?這個 前端網頁前端 上面的配置行告訴 HAproxy 偵聽端口上的傳入請求。 80192.168.72.157 並將它們傳輸到配置下的後端服務器 後端 網頁後端在配置期間,將 IP 地址替換為您的 Web 服務器的相關 IP 地址。

配置 HAProxy 監控

HAproxy 監控允許您查看服務器狀態、數據傳輸、正常運行時間、會話速率等等。 要配置 HAproxy 監控,請將以下行添加到您的配置文件中: /etc/haproxy/haproxy.cfg

聽統計
192.168.72.157:8080

模式http
期權轉讓
可選的httpclose
統計數據 效力

統計顯示圖例
統計更新 5 秒
統計數據 /統計數據
統計字段 Haproxy 統計
統計認證 kbuzdar:kbuzdar #monitored登錄用戶和密碼

統計經理 如果 真實的
default_backend 網絡後端

以上配置將啟用HAproxy”統計數據“頁面使用 統計數據 命令和使用 http 使用定義的用戶名和密碼進行基本身份驗證 統計證明 指導。

配置完成後保存並關閉 haproxy.cfg 文件。

在終端中使用以下命令檢查配置文件:

$ 代理服務器 -C -F /ETC/代理服務器/haproxy.cfg

以下輸出表明配置正確。

應用配置並重新啟動 HAproxy 服務。

$ 須藤 systemctl 重啟 haproxy.service

停止並啟動 HAProxy 服務。

檢查 HAproxy 服務狀態的命令是:

$ 須藤 systemctl 狀態 haproxy.service

這個 活躍(運行) 以下輸出中的狀態表明 HAproxy 服務器已啟用並正常工作。

下面是一些用於管理 HAproxy 服務器的附加命令。

啟動 HAproxy 服務器的命令是:

$ 須藤 systemctl 啟動 haproxy.service

要停止 HAproxy 服務器,命令是:

$ 須藤 systemctl stop haproxy.service

要暫時禁用 HAproxy 服務器,命令為:

$ 須藤 systemctl 禁用 haproxy.service

重新啟用 HAproxy 服務器的命令是:

$ 須藤 系統控制 效力 haproxy.service

測試 HAProxy

在測試您的 HAproxy 設置之前,請確保您已連接到您的 Web 服務器。 從 HAproxy 服務器,通過 IP 地址或主機名 ping 兩個 Web 服務器。

$ 平坦的 主機名或 IP 地址

以下輸出顯示 HAproxy 服務器可以訪問兩個 Web 服務器。

使用 Web 瀏覽器測試 HA 代理

在您的 HAproxy 服務器上,打開任何 Web 瀏覽器並鍵入: https:// 後跟 HAproxy 服務器的 IP 地址。在這種情況下,它是 192.168.72.157。

網址:///192.168.72.157

HAproxy 服務器以循環方式交替向兩個 Web 服務器發送請求。 您可以通過重新加載網頁幾次來測試這一點。

這是我第一次點擊 https://192.168.72.157 時的響應:

這是我重新加載頁面時得到的響應。

您也可以使用主機名代替 HAproxy 服務器的 IP 地址。

使用測試 HA 代理 Curl

您還可以在 Linux 上使用 curl 命令測試您的 HAproxy 設置。打開終端並輸入 捲曲 後跟 HAproxy 服務器的 IP 地址或主機名。

$ 卡爾 192.168.72.157

$ 捲曲代理服務器

運行 curl 命令幾次後,您可以看到兩個 Web 服務器之間的響應交替出現。

除了多次運行該命令外,您還可以運行以下一行腳本來測試您的 HAproxy 服務器。

$ 真品; 執行 捲曲 192.168.72.157; 1; 完成

測試 HAProxy 監控

要訪問 HAproxy 監控頁面,請輸入: https:// 後面是 HAproxy 服務器 IP 地址/主機名和端口 8080/stats。

網址:///192.168.72.157:8080/統計數據

網址:///代理服務器:8080/統計數據

將出現以下身份驗證框。進來 用戶名 什麼時候 密碼 先前在配置中配置並按 .

這是 HAProxy 服務器統計報告。

在那裡,您可以在 Linux 系統上安裝和配置 HAproxy 負載平衡器。我們介紹了作為負載均衡器的 HAproxy 的基本設置以及 Apache Web 服務器的配置。我們還查看了一些用於管理 HAproxy 服務器的命令。最後,我使用瀏覽器 curl 命令測試了負載均衡器。有關詳細信息,請參閱官方 HAproxy 文檔。