在託管服務器或網站的傳統方式中,服務器是通過單個 HTTP 服務器託管的。當客戶端訪問服務器時,在服務器上是允許的。但是,如果您有多個或更多用戶怎麼辦?是否有成千上萬的客戶訪問您的網站一次以進行特定查詢?如果服務器崩潰了怎麼辦?單台服務器如何分配負載?您可以使用術語“負載平衡”來回答所有這些問題。如果你正在尋找一個可靠的工具來管理服務器流量,你絕對可以在 Linux 上配置 HAProxy、Nginx 和 Keepalived 來實現負載平衡。

HAProxy、Nginx、Keepalived 基礎知識

Nginx 以負載平衡和代理服務而聞名。使用負載平衡服務器,客戶端通過負載平衡器連接到服務器,而不是直接連接到服務器。 Linux 上的負載均衡與 Nginx、HAProxy 和 Keepalived 配合得很好。如果服務器崩潰,負載均衡器會將客戶端連接到另一個在線服務器。

HAProxy 是用於 HTTP 和 TCP Web 服務器的免費開源負載平衡工具。它是用 C 編程語言編寫的,並在 GNU 公共許可證下獲得許可。 非常完整且易於在 Linux 上設置負載平衡。 術語 HAProxy 代表高可用性代理工具。 您可以部署 HAProxy 工具來提高服務器性能、可用​​性和負載平衡。

Keepalive 工具充當兩台服務器之間的中介,在一台服務器出現故障時將客戶端從一台服務器重定向到另一台服務器。 Keepalive 與虛擬路由器冗餘協議一起工作,以提供負載平衡並減輕服務器故障問題。 HAProxy 有助於負載平衡並使您的服務器保持正常運行。

因此,不能保證 HAProxy 將始終處於活動狀態。這是用於備份 HAProxy 的 keepalive。它將客戶端請求分發到遠程服務器並處理第 4 層、第 7 層(傳輸和應用層)負載平衡。此外,HAProxy 可以處理訪問控制列表、後端和前端術語。

在 Linux 上使用 HAProxy、Nginx、Keepalived 進行負載平衡

現在我們已經討論了很多關於 Linux 的 HAproxy、Nginx 和 Keepalived 工具,讓我們進入教程。本文介紹如何在 Linux 上使用 HAProxy、Nginx 和 Keepalived 設置負載平衡。要完成本文,您需要具備服務器層面的基礎知識和使用 Linux 的基本能力。

第一步:在 Linux 上安裝 Nginx 進行負載均衡

安裝 Nginx HTTP Web 服務器是開始向您展示如何使服務器更強大、負載均衡和客戶端更強大的過程的第一步。 安裝 Nginx Web 服務器非常簡單。您可以使用以下命令在 Linux 機器上安裝 Nginx Web 服務器:

  • 在 Ubuntu / Debian Linux 上安裝 Nginx Web 服務器
sudo apt update
sudo apt install nginx
  • 運行以下命令安裝 Nginx Fedora / RedHat Linux
yum -y install nginx

安裝 Nginx 服務器後,在您的機器上配置、激活和啟動服務器。 請仔細閱讀本文以了解如何在 Linux 上開始使用 Nginx 服務器。

第 2 步:在 Linux 上安裝 HAproxy 負載均衡器

如果您在 Linux 機器上安裝和配置 Nginx 服務器,它可以作為您機器或網絡上的服務器正常運行。但是,我正在嘗試在這裡創建一個負載平衡服務器,因此我將在我的系統上安裝和配置 HAproxy 工具。

1.在Ubuntu上安裝和配置HAproxy進行負載均衡

在您的系統上安裝 HAProxy 之前,建議您檢查系統上是否已存在 HAProxy 服務。

sudo apt show haproxy

然後通過 PPA 包將 HAProxy 存儲庫添加到您的系統。 在 PPA 拉取存儲庫後,更新系統存儲庫。

sudo add-apt-repository ppa:vbernat/haproxy-1.7
sudo apt update

最後,在您的 Ubuntu / Debian Linux 系統上運行以下命令以在您的系統上獲取 HAProxy。 安裝 HAProxy 後,檢查 HAProxy 的版本以確保它已正確安裝在您的計算機上。

在 Ubuntu 上安裝 HAproxy

sudo apt install -y haproxy
haproxy -v

快樂代理版

在 Linux 機器上安裝 HAProxy 後,編輯用於在服務器上設置 HAProxy 的配置腳本。在這裡,我們將編輯一些 HAProxy 配置腳本。編輯這些腳本並備份這些文件時要小心,以便在出現問題時可以恢復默認設置。

首先,通過在具有 root 訪問權限的終端 shell 中運行以下命令來編輯 HAProxy 配置腳本:這裡我們使用 NanoScriptEditor 工具。你可以使用任何你喜歡的工具。

sudo nano /etc/haproxy/haproxy.cfg

haproxy 配置文件

然後將以下腳本行複制並粘貼到文件中,保存並關閉文件。以下腳本行定義了 HAProxy 的前端和後端的狀態。服務器詳情[サーバー名],[IP],和[その他の資格情報]請填寫字段。

frontend http_front
bind *:80
stats uri /haproxy?stats
default_backend http_back

backend http_back
balance roundrobin
server :80 check
server :80 check

然後在終端 shell 中運行以下命令來編輯和配置 HAproxy 腳本。

sudo nano /etc/haproxy/haproxy.cfg

使用以下配置腳本來配置 HAproxy 設置。

frontend http_front
bind *:80
stats uri /haproxy?stats
acl url_blog path_beg /blog
use_backend blog_back if url_blog
default_backend http_back

backend http_back
balance roundrobin
server :80 check
server :80 check

backend blog_back
server :80 check

配置完成後,您可以通過以 root 訪問權限運行以下系統控制命令來重新啟動 Linux 機器上的 HAProxy 工具。

sudo systemctl status haproxy
sudo systemctl restart haproxy

現在,您可以通過使用服務器地址運行以下命令來檢查服務器的狀態。

https:///haproxy?stats

2.安裝和配置HAproxy Fedora

安裝 HAProxy 負載平衡工具 Fedora Linux 有點像在 Debian / Ubuntu 系統上安裝。首先,更新系統存儲庫,然後運行 DNF 命令在您的 Linux 機器上安裝 HAProxy 工具。

yum -y update
yum -y install haproxy

在 Linux 上安裝 HAProxy

安裝完成後,運行以下命令備份配置腳本,然後再進行任何更改。

cd /etc/haproxy/
mv haproxy.cfg haproxy.cfg_bac

您現在可以運行以下 touch 命令來創建新的 HAProxy 配置腳本。然後使用以下 Nano 命令編輯腳本:

touch haproxy.cfg
nano haproxy.cfg

您可以復制並粘貼以下配置腳本,保存文件並退出。

global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats timeout 30s
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000

#frontend
#---------------------------------
frontend http_front
bind *:80
stats uri /haproxy?stats
default_backend http_back

#round robin balancing backend http
#-----------------------------------
backend http_back
balance roundrobin
#balance leastconn
mode http
server webserver1 10.13.211.169:80 check # ip_address_of_1st_centos_webserver
server webserver2 10.13.211.158:80 check # ip_address_of_2nd_centos_webserver

將腳本添加到配置文件後,啟用 HAProxy 工具 Fedora Linux,啟動並檢查其狀態。

systemctl enable haproxy
systemctl start haproxy
systemctl status haproxy

您還可以通過 Web 瀏覽器獲取 HAProxy 狀態來檢查 HAProxy 是否在您的系統上正常運行。

https://10.13.211.194/haproxy?stats

以下 cURL 命令返回下鑽服務器狀態以及 HAProxy 狀態。

curl 10.13.211.194
curl 10.13.211.194

第三步:在 Linux 上安裝 Keepalived

現在我們已經討論了keepalive,我們將直接進入Linux系統上的keepalive安裝過程。本節介紹如何在 Fedora 和 Debian Linux 上安裝和配置 Keepalived 工具。

1. 在 Ubuntu/Debian 上安裝和配置 Keepalived

要在 Ubuntu 和其他 Debian Linux 系統上安裝 Keepalived 負載平衡工具,請運行以下命令以獲取系統構建先決條件。然後瀏覽到您的主目錄並運行如下所示的 wget 命令將壓縮的 Keepalived 文件下載到您的文件系統。

sudo apt-get install build-essential libssl-dev
cd ~
wget https://www.keepalived.org/software/keepalived-1.2.19.tar.gz

使用 Linux keepalive 工具設置負載平衡

下載完成後,使用下面的tar命令解壓文件,使用cd命令瀏覽到解壓後的目錄。

tar xzvf keepalived*
cd keepalived*

您現在可以通過運行以下命令在您的 Ubuntu 系統上安裝 Keepalived 工具:

./configure
make
sudo make install

安裝完成後,編輯配置並在服務器上設置keepalives。執行以下命令來編輯配置腳本。

sudo nano /etc/init/keepalived.conf

當腳本打開時,複製並粘貼以下腳本。

description "load-balancing and high-availability service"

start on runlevel [2345]
stop on runlevel [!2345]

現在跑步 mkdir 該命令為 Keepalived 工具創建一個新的配置腳本,然後進入配置腳本。

sudo mkdir -p /etc/keepalived
sudo nano /etc/keepalived/keepalived.conf

在 keepalive 配置文件中輸入以下腳本行。

vrrp_script chk_haproxy {
script "pidof haproxy"
interval 2
}

vrrp_instance VI_1 {
interface eth1
state MASTER
priority 200

virtual_router_id 33
unicast_src_ip primary_private_IP
unicast_peer {
secondary_private_IP
}


}

現在, etc 創建一個目錄並將以下行添加到您的腳本中:

sudo nano /etc/keepalived/keepalived.conf

您需要放入配置文件的腳本行。

vrrp_script chk_haproxy {
script "pidof haproxy"
interval 2
}

vrrp_instance VI_1 {
interface eth1
state BACKUP
priority 100

virtual_router_id 33
unicast_src_ip secondary_private_IP
unicast_peer {
primary_private_IP
}

authentication {
auth_type PASS
auth_pass password
}

track_script {
chk_haproxy
}

notify_master /etc/keepalived/master.sh
}

配置 keepalive 腳本後,創建輔助負載均衡器配置腳本並輸入所需的腳本行。

sudo nano /etc/keepalived/keepalived.conf

運行 nano 命令編輯腳本並在腳本中輸入以下行:文件更新後,保存並關閉 playbook。

vrrp_script chk_haproxy {
script "pidof haproxy"
interval 2
}

vrrp_instance VI_1 {
interface eth1
state BACKUP
priority 100

virtual_router_id 33
unicast_src_ip secondary_private_IP
unicast_peer {
primary_private_IP
}

authentication {
auth_type PASS
auth_pass password
}

track_script {
chk_haproxy
}

notify_master /etc/keepalived/master.sh
}

2. 安裝和配置 Keepalived Fedora

在 Fedora RedHat Linux 系統上安裝 Keepalive 工具與在 Debian 發行版上安裝非常相似。首先,您需要更新系統存儲庫,然後運行以下 yum 命令來安裝 Keepalived 工具。

yum update
yum install -y keepalived

在 Linux keepalives 中設置負載平衡

安裝完成後,編輯 Keepalived 配置腳本,使用 Keepalived 調整服務器設置。在進行任何更改之前備份 Keepalived 配置腳本。

在 shell 中一次運行以下命令以創建備份文件、創建配置文件和編輯配置腳本。配置該工具後,使用它在 Linux 上設置負載平衡服務器。

mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf_bac
touch /etc/keepalived/keepalived.conf
vim /etc/keepalived/keepalived.conf

當配置腳本打開時,在文件中輸入以下腳本行:您可能需要根據服務器的 IP、端口、名稱和其他詳細信息對腳本文件進行更改。

global_defs {
notification_email {
ubuntupit.com
[email protected]
}
notification_email_from [email protected]
smtp_server 10.13.211.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}

vrrp_instance VI_1 {
state MASTER
interface eth0 #put your interface name here. [to see interface name: $ ip a ]
virtual_router_id 51
priority 101 # 101 for master. 100 for backup. [priority of master> priority of backup]
advert_int 1
authentication {
auth_type PASS
auth_pass 1111 #password
}
virtual_ipaddress {
10.13.211.10 # use the virtual ip address.
}
}

配置 Keepalived 腳本後,使用 root 訪問權限在終端 shell 中運行以下系統控制命令,以在 Linux 機器上啟動、啟用和驗證 Keepalived 的狀態。

systemctl start keepalived
systemctl enable keepalived
systemctl status keepalived

如果一切順利,以下命令將返回所有 IP 位置的服務器狀態。這確保了 Linux 服務器的完整負載平衡設置和高可用性。

$ while true; do ; curl 10.13.211.10 ; sleep 1; done;

最後一個字

作為系統管理員,您知道讓您的服務器保持活躍並可供世界各地的客戶訪問是多麼重要。在大多數情況下,最好在服務器繁忙時啟用負載平衡。

許多點擊同時發生,這使服務器保持快速且可訪問。在本文中,我介紹了 HAProxy、Keepalived 和 Nginx 的基礎知識。 我解釋瞭如何在 Linux 上設置 HAProxy、Nginx、Keepalived 進行負載均衡的概念和方法。

如果您覺得本文有用且內容豐富,請與您的朋友和 Linux 社區分享。您也可以在評論部分寫下您對本文的看法。