搭建web項目_搭建Keepalived Nginx高可用Web集群?
搭建Web項目_搭建Keepalived Nginx高可用Web集群

1、安裝Nginx
更新系統軟件包列表:
```
sudo aptget update
```

安裝Nginx:
```
sudo aptget install nginx
```
啟動Nginx服務:

```
sudo systemctl start nginx
```
設置Nginx開機自啟:
```
sudo systemctl enable nginx
```
2、安裝Keepalived
下載Keepalived軟件包:
```
wget http://www.keepalived.org/software/keepalived2.2.30.tar.gz
```
解壓軟件包:
```
tar zxvf keepalived2.2.30.tar.gz
```
進入解壓后的目錄:
```
cd keepalived2.2.30
```
編譯和安裝Keepalived:
```
./configure prefix=/usr/local/keepalived sysconfdir=/etc/keepalived withkerneldir=/lib/modules/$(uname r)/build MULTI_PACKET=no withoutpam withoutvrrp withoutlua withoutcrypto withopenssl withoutbonding withoutipvsadm withoutlvsadm withoutnfs withoutvrrpv3 withoutcluster withoutlbnsd withoutlnav withsystemd withscript withpidfile withlogfile withstatedump withtrackdev withinterface witharp withroute withipvsadm withiptables withnetlink withvrrpv6 disablestatic disableshared enablereload enablemonitorsysconfdir=/etc/keepalived withkerneldir=/lib/modules/$(uname r)/build MULTI_PACKET=no withoutpam withoutvrrp withoutlua withoutcrypto withopenssl withoutbonding withoutipvsadm withoutlvsadm withoutnfs withoutvrrpv3 withoutcluster wi(HttpS://WWW.KeNgnIAO.cOM)thoutlbnsd withoutlnav withsystemd withscript withpidfile withlogfile withstatedump withtrackdev withinterface witharp withroute withipvsadm withiptables withnetlink withvrrpv6
make && sudo make install
```
配置Keepalived:
```
vi /etc/keepalived/keepalived.conf
```
在配置文件中,添加以下內容:
```
global_defs {
notification_email {
user@example.com # 發送報警郵件的郵箱地址
}
router_id LVS_DEVELOP # 路由器ID,用于標識該節點的唯一性
}
vrrp_instance VI_1 { # VRRP實例名稱,可以自定義,這里使用默認的VI_1
state MASTER # 節點狀態,可以是MASTER或BACKUP,MASTER為主節點,BACKUP為備份節點
interface eth0 # 虛擬網卡接口,根據實際情況進行修改,一般使用eth0作為主網卡接口
virtual_router_id 51 # VRRP的虛擬路由ID,范圍是1~255,可以自定義,這里使用默認的51
priority 100 # VRRP優先級,范圍是1~255,數值越大表示優先級越高,主節點的優先級要高于備份節點的優先級,這里設置為100
advert_int 1 # VRRP廣播間隔時間,單位是秒,默認是1秒,可以根據實際需求進行調整
authentication { # VRRP認證方式的配置,根據實際情況進行修改,這里不使用認證,所以留空即可
auth_type PASS # 認證類型,可以是PASS或AH,PASS表示不進行認證,AH表示使用AH認證協議進行認證,這里使用PASS不進行認證
auth_pass 1111 # 認證密碼,如果認證類型是PASS并且留空時,表示不使用密碼進行認證;如果使用AH認證協議進行認證時,需要填寫對應的密鑰值,這里留空表示不使用密碼進行認證
}
virtual_ipaddress { # VRRP虛擬IP地址的配置,根據實際情況進行修改,這里使用虛擬IP地址為192.168.0.100的子網段中的任意一個IP地址作為虛擬IP地址
192.168.0.100/24 dev eth0 label eth0:1 # IP地址和子網掩碼的組合格式,dev表示使用的網卡接口名,label表示給虛擬IP地址添加一個標簽便于識別和管理,這里是將虛擬IP地址綁定到eth0網卡上并添加了一個標簽為eth0:1的標識符
}
}
```
保存并退出編輯器,然后啟動Keepalived服務:
```
sudo systemctl start keepalived.service # 啟動Keepalived服務
sudo systemctl enable keepalived.service # 設置Keepalived服務開機自啟
```
3、測試高可用性集群功能
在另一臺服務器上重復上述步驟安裝和配置Nginx和Keepalived,然后分別在兩臺服務器上訪問Web應用的域名或IP地址,確認負載均衡和故障轉移是否正常工作,可以使用curl命令或者瀏覽器訪問Web應用。
```
curl http://webapp.example.com # 如果當前服務器為主節點,則應該能夠正常返回Web應用的內容;如果當前服務器為備份節點,則可能會返回錯誤或者無法連接的提示信息,這是因為在備份節點上沒有運行Web應用的服務進程,但是可以通過訪問其他正常的服務器來確認負載均衡功能是否正常工作,如果能夠正常返回其他服務器上的Web應用的內容,則說明負載均衡功能是正常的,同時可以嘗試停止其中一臺服務器上的Keepalived服務或者Nginx服務,再次訪問Web應用的域名或IP地址,觀察是否能夠自動切換到另一臺服務器上繼續提供服務,如果不能自動切換并且出現錯誤或者無法連接的提示信息,則說明故障轉移功能存在問題,需要檢查相應的日志文件以確定具體原因并進行修復。
