實驗:實作高可用的LVS-DR模型
1、準備兩台RS伺服器

2、将兩台lVS安裝httpd或nginx,用來做sorry server
3、定義RS伺服器
在後端伺服器RS1寫配置腳本
執行腳本後,ifconfig
之後腳本傳給RS2,執行此腳本,同樣存在lo:0 10.0.56.10
4、LVS伺服器安裝ipvsadm,之後添加虛拟網絡
ifconfig ens33:0 10.0.56.10 netmask 255.255.255.255 broadcast 10.0.56.10 up
5、配置添加RS伺服器被lvs排程
6、測試,注意測試機加上到10.0.56.0/24的路由,此時基本的已完成
7、LVS1下線,配置LVS2
LVS1:ifconfig ens33:0 down
LVS2:
ipvsadm -A -t 10.0.56.10:80 -s rr
ipvsadm -a -t 10.0.56.10:80 -r 192.168.239.72 -g
ipvsadm -a -t 10.0.56.10:80 -r 192.168.239.73 -g
之後結果會等一個間隔時間後才會出現
8、配置keepalived
清空ipvsadm的規則,ipvsadm -C
兩個LVS主機上均有在/etc/keepalived/keepalived.conf:
virtual_ipaddress {
10.0.56.10/24 dev ens33 label ens33:1
}
virtual_server 10.0.56.10 80 {
delay_loop 2
lb_algo wrr
lb_kind DR
protocol TCP
sorry_server 127.0.0.1 80
real_server 192.168.239.72 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 1
nb_get_retry 3
delay_before_retry 1
}
real_server 192.168.239.73 80 {
url {
status_code 200
nb_get_retry 3
}
之後兩台LVS全部停止keepalived
先啟動LVS1的keepalived
測試1(如果光标閃爍,檢視LVS伺服器的iptables -vnL中是否有個DROP,由此規則原因是keepalive.conf中有vrrp_strict)
測試2
測試3
測試4
暫停片刻後恢複排程
附:整個LVS的keepalive.conf
global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id lvs1
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
vrrp_mcast_group4 224.0.156.18
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 55
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass passwd
virtual_ipaddress {
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
sorry_server 127.0.0.1 80
real_server 192.168.239.72 80 {
status_code 200
實驗:keepalive實作高并發nginx代理nginx伺服器(單主模型)
1、簡易拓撲圖
2、在兩台keepalive伺服器中更改配置/etc/keepalive/keepalive.conf
做一步測試一步,說明兩台keepalive的nginx配置正确
2、/etc/keepalive/keepalive.conf的配置
systemclt restart keepalived
3、測試1
此時依舊成功
加入nginx檢測腳本,判斷nginx程序是否存在
實驗:keepalive實作高并發nginx代理nginx伺服器(雙主模型)
2、配置ka1
配置ka2
配置儲存後重新開機keepalive
3、配置RS伺服器
4、配置ka1的nginx.conf
配置ka 2的nginx,和ka 1的基本一緻,最好兩個default的server_name和proxy_pass換到各自對應的RS主機位置
5、客戶機配置/etc/hosts解析
6、測試
測試結果