在託管服務器或網站的傳統方式中,服務器是通過單個 HTTP 服務器託管的。當客戶端訪問服務器時,它在服務器上被授權。但是,如果您有多個用戶或更多用戶怎麼辦?成千上萬的客戶可以訪問您的網站一次進行特定查詢?如果您的服務器崩潰怎麼辦?單個服務器如何平衡負載?要回答所有這些問題,我們可以使用術語“負載均衡”。如果您正在尋找管理服務器流量的可靠工具,您可以在 Linux 上設置 HAProxy、Nginx 和 Keepalived 以實現負載平衡。
HAProxy、Nginx 和 Keepalived 的基礎知識
Nginx 以其負載均衡和代理服務而聞名。使用負載平衡服務器,客戶端通過負載平衡器連接到服務器,而不是直接連接到服務器。 Linux 負載平衡適用於 Nginx、HAProxy 和 Keepalived。如果服務器崩潰,負載均衡器會將客戶端連接到另一個在線服務器。
HAProxy 是用於 HTTP 和 TCP Web 服務器的免費開源負載平衡工具。 它是用 C 編程語言編寫的,並在 GNU 公共許可證下獲得許可。 非常完整且易於在 Linux 上設置負載平衡。 術語 HAProxy 代表高可用性代理工具。 您可以部署 HAProxy 工具來提高服務器性能、可用性和負載平衡。
Keepalived 工具充當兩台服務器之間的中介,如果其中一台服務器出現故障,則將客戶端從一台服務器重定向到另一台服務器。 Keepalived 與虛擬路由器冗餘協議一起工作,以提供負載平衡和服務器故障緩解。 HAProxy 使負載平衡和保持服務器正常運行變得容易。
因此,不能保證 HAProxy 始終處於活動狀態。這是用於備份 HAProxy 的 Keepalived。將客戶端請求分發到遠程服務器並處理第 4 層、第 7 層(傳輸和應用層)負載平衡。此外,HAProxy 可以處理訪問控制列表、後端和前端條件。
在 Linux 上使用 HAProxy、Nginx 和 Keepalived 進行負載平衡
我們已經討論了很多關於 Linux 的 HAproxy、Nginx 和 Keepalived 工具,所以讓我們進入教程。本文介紹如何在 Linux 上使用 HAProxy、Nginx 和 Keepalived 設置負載平衡。完成本文需要基本的服務器級知識和使用 Linux 的基本熟練程度。
第 1 步:在 Linux 上安裝 Nginx 以實現負載平衡
該過程的第一步是安裝 Nginx HTTP Web 服務器,因為我們將看到如何使服務器更強大、負載平衡和增強客戶端處理。 安裝 Nginx Web 服務器簡單易行。您可以使用以下命令在 Linux 機器上安裝 Nginx Web 服務器:
- 在 Ubuntu/Debian Linux 上安裝 Nginx Web 服務器
sudo apt update
sudo apt install nginx
- 通過運行以下命令安裝 Nginx Fedora/Red Hat 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 版本以確保它已正確安裝在您的計算機上。
sudo apt install -y haproxy
haproxy -v
在 Linux 機器上安裝 HAProxy 後,編輯用於在服務器上設置 HAProxy 的配置腳本。現在編輯一些 HAProxy 配置腳本。編輯這些腳本並備份這些文件時要小心,以便在出現問題時恢復默認設置。
首先,通過在具有 root 訪問權限的終端 shell 中運行以下命令來編輯 HAProxy 配置腳本。這裡我們使用的是 Nano Script Editor 工具。你可以使用任何你喜歡的工具。
sudo nano /etc/haproxy/haproxy.cfg
將以下腳本行複制並粘貼到文件中,保存並關閉文件。以下腳本行定義了 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
安裝完成後,運行以下命令備份配置腳本,然後再進行任何更改。
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
我們已經介紹了 Keepalived,所以讓我們直接進入在 Linux 系統上安裝 Keepalived 的過程。本節介紹如何在 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
下載完成後,使用以下 tar 命令解壓縮文件,然後使用 CD 命令瀏覽到解壓縮的目錄。
tar xzvf keepalived*
cd keepalived*
您現在可以通過運行以下命令在您的 Ubuntu 系統上安裝 Keepalived 工具:
./configure
make
sudo make install
安裝後,編輯配置以在您的服務器上設置 Keepalived。通過運行以下命令編輯配置腳本:
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
在 Keepalived 配置文件中輸入以下腳本行。
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
}
配置 Keepalived 腳本後,創建輔助負載均衡器配置腳本並輸入所需的腳本行。
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 Red Hat Linux 系統上安裝 Keepalived 工具與在 Debian 發行版上安裝它非常相似。首先,我們需要更新系統存儲庫。然後通過運行以下 yum 命令安裝 Keepalived 工具:
yum update
yum install -y keepalived
安裝完成後,編輯 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 社區分享。您也可以在評論部分寫下您對本文的看法。