實驗:實現高可用的LVS-DR模型nginx
一、準備兩臺RS服務器後端
二、將兩臺lVS安裝httpd或nginx,用來作sorry server服務器
三、定義RS服務器網絡
在後端服務器RS1寫配置腳本併發
執行腳本後,ifconfigide
以後腳本傳給RS2,執行此腳本,一樣存在lo:0 10.0.56.10高併發
四、LVS服務器安裝ipvsadm,以後添加虛擬網絡oop
ifconfig ens33:0 10.0.56.10 netmask 255.255.255.255 broadcast 10.0.56.10 up測試
五、配置添加RS服務器被lvs調度url
六、測試,注意測試機加上到10.0.56.0/24的路由,此時基本的已完成
七、LVS1下線,配置LVS2
LVS1:ifconfig ens33:0 down
LVS2:
ifconfig ens33:0 10.0.56.10 netmask 255.255.255.255 broadcast 10.0.56.10 up
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
以後結果會等一個間隔時間後纔會出現
八、配置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 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 1
nb_get_retry 3
delay_before_retry 1
}
}
}
以後兩臺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 {
10.0.56.10/24 dev ens33 label ens33:1
}
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
}
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 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 1
nb_get_retry 3
delay_before_retry 1
}
}
}
實驗:keepalive實現高併發nginx代理nginx服務器(單主模型)
一、簡易拓撲圖
二、在兩臺keepalive服務器中更改配置/etc/keepalive/keepalive.conf
作一步測試一步,說明兩臺keepalive的nginx配置正確
二、/etc/keepalive/keepalive.conf的配置
systemclt restart keepalived
三、測試1
測試2
此時依舊成功
測試3
加入nginx檢測腳本,判斷nginx進程是否存在
測試4
實驗:keepalive實現高併發nginx代理nginx服務器(雙主模型)
一、簡易拓撲圖
二、配置ka1
配置ka2
配置保存後重啓keepalive
三、配置RS服務器
四、配置ka1的nginx.conf
配置ka 2的nginx,和ka 1的基本一致,最好兩個default的server_name和proxy_pass換到各自對應的RS主機位置
五、客戶機配置/etc/hosts解析
六、測試
測試結果
測試結果