目錄
一.LVS+KeepAlived高可用負載均衡集群的部署
二.Nginx+KeepAlived高可用負載均衡集群的部署
一.LVS+KeepAlived高可用負載均衡集群的部署
實驗環境
主keepalived:192.168.181.10? ? ?lvs? ?(7-1)
備keepalived:192.168.181.100? ? ?lvs? (7-2)
web1:192.168.181.11? ? ? ? ? ? ? ? ? ? ? ? ? ? (7-3)
web2:192.168.181.12? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (7-4)
vip:192.168.181.188
客戶機訪問
實驗開始前關閉所有機器的防火墻
systemctl stop firewalld.service?
setenforce 0
主上操作(7-1)
yum install ipvsadm keepalived -y
modprobe ip_vs
cat /proc/net/ip_vs
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm.service
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
#復制一份
vim keepalived.conf (修改相關配置)
global_defs {
? ?notification_email {
? ? ?acassen@firewall.loc
? ? ?failover@firewall.loc
? ? ?sysadmin@firewall.loc
? ?}
? ?notification_email_from Alexandre.Cassen@firewall.loc
? ?smtp_server 127.0.0.1
? ?#修改郵箱指向自己(10行)
? ?smtp_connect_timeout 30
? ?router_id LVS_01
? ?#指定服務器名稱主備需要不一樣(12行)
? ?vrrp_skip_check_adv_addr
? ?#vrrp_strict
? ?#14行需要注釋否則服務啟動有問題
? ?vrrp_garp_interval 0
? ?vrrp_gna_interval 0
}
vrrp_instance VI_1 {
? ? state MASTER
? ? #指定服務器類型MASTER為主 BACKUP為備(20行)
? ? interface ens33
? ? #修改網卡名稱為ens33(21)
? ? virtual_router_id 10
? ? #指定虛擬路由器的ID號主備需要一致
? ? #nopreempt?
? ? #非搶占模式兩個節點都需要配置去掉注釋
? ? priority 100
? ? #設定優先級數字越大優先級越高,準備需要不一樣
? ? advert_int 1
? ? #通告間隔(查看是否存活)
? ? authentication {
? ? ? ? auth_type PASS
? ? ? ? #認證類型
? ? ? ? auth_pass 123456
? ? ? ? #修改驗證密碼,主備需要一樣(27行)
? ? }
? ? virtual_ipaddress {
? ? ? ? 192.168.181.188
? ? ? ? #指定群集vip地址
? ? }
}
virtual_server 192.168.181.188 80 {
? ? delay_loop 6
? ? #健康間隔時間6秒
? ? lb_algo rr
? ? #調度算法輪詢
? ? lb_kind DR
? ? #lvs模式為DR?
? ? persistence_timeout 0
? ? #連接保持時間改為0 否則 無法體現效果
? ? protocol TCP
? ? #采用協議
? ??
?real_server 192.168.181.11 80 {
?#43行修改地址為真實主機地址
? ? ? ? weight 1
? ? ? ? #45行刪除
? ? ? ? #節點權重
? ? ? ? TCP_CHECK {
? ? ? ? ? ? connect_port 80
? ? ? ? ? ? #檢查目標端口
? ? ? ? ? ? connect_timeout 3
? ? ? ? ? ? #連接超時?
? ? ? ? ? ? nb_get_retry 3
? ? ? ? ? ? #重試次數
? ? ? ? ? ? delay_before_retry 3
? ? ? ? ? ? #重試間隔時間
? ? ? ? }
? ? }
?real_server 192.168.181.12 80 {
?#第二個
? ? ? ? weight 1
? ? ? ? TCP_CHECK{
? ? ? ? ? ? connect_port 80
? ? ? ? ? ? connect_timeout 3
? ? ? ? ? ? nb_get_retry 3
? ? ? ? ? ? delay_before_retry 3
? ? ? ? }
? ? }
?scp /etc/keepalived/keepalived.conf ?root@192.168.181.100:/etc/keepalived/ (復制給從7-2)
vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0?
sysctl -p
?systemctl restart keepalived.service?
備上操作(7-2)
yum install ipvsadm keepalived -y
modprobe ip_vs
cat /proc/net/ip_vs
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm.service
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
#復制一份
vim keepalived.conf (從主上拷貝過來的修改以下三項)
router_id LVS_02
state BACKUP
priority 90
vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0?
sysctl -p
systemctl restart keepalived.service?
在web1 web2 上操作
yum install httpd -y
ifconfig lo:0 192.168.181.188 netmask 255.255.255.255
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
sysctl -p
route add -host 192.168.91.188 dev lo:0
#設置路由
分別在web1 web2上輸入
echo ?7-3 > /var/www/html/index.html
echo ?7-4?> /var/www/html/index.html
最后用客戶機curl 192.168.181.188 會發現7-3 7-4 出現概率大概為1:1
即使關掉7-1lvs keepalived 7-2也可以支持工作
二.Nginx+KeepAlived高可用負載均衡集群的部署
實驗環境:
主keepalived:192.168.91.100 ? ? nginx
備keepalived:192.168.91.101? ? ?nginx
web1:192.168.91.102
web2:192.168.91.103 ? ?
vip:192.168.91.188
客戶機訪問
7-3 7-4
systemctl stop firewalld
setenforce 0
yum ?install httpd ?-y
echo ?7-3 > /var/www/html/index.html
systemctl start httpd
systemctl stop firewalld
setenforce 0
yum ?install httpd ?-y
echo ?7-4 > /var/www/html/index.html
systemctl start httpd
7-1?
systemctl stop firewalld
setenforce 0
yum install ?epel-release.noarch -y?
yum install ?-y ?nginx
systemctl start nginx
vim ? /etc/nginx/nginx.conf
?upstream web ?{
? ? server 192.168.91.102;
? ? server 192.168.91.103;
? ? }
?location / ?{
? ? ? ? ?proxy_pass ?http://web;
? ? ? ? }
scp ? /etc/nginx/nginx.conf ? ?192.168.91.101:/etc/nginx/nginx.conf
7-2
systemctl stop firewalld
setenforce 0
yum install ?epel-release.noarch -y?
yum install ?-y ? nginx
systemctl start nginx
?
7-1 ? 7-2 都要操作
yum install keepalived ? -y
7-1
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
? ?notification_email {
? ? ?acassen@firewall.loc
? ? ?failover@firewall.loc
? ? ?sysadmin@firewall.loc
? ?}
? ?notification_email_from Alexandre.Cassen@firewall.loc
? ?smtp_server 127.0.0.1 ? ? ?# 修改郵箱地址
? ?smtp_connect_timeout 30 ?
? ?router_id LVS01 ? ? ? ? ? ?# 修改名稱
? ?vrrp_skip_check_adv_addr ?
? ?#vrrp_strict ? ? ? ? ? ? ?#關閉嚴格模式
? ?vrrp_garp_interval 0
? ?vrrp_gna_interval 0
}
vrrp_script check_down {
? ? ? ? script ?"/etc/keepalived/ng.sh" ??
? ? ? ? interval 1
? ? ? ? weight -30
? ? ? ? fall ?3
? ? ? ? rise 2
? ? ? ? timeout 2
}
vrrp_instance VI_1 {
? ? state MASTER
? ? interface ens33 ? ?#修改網卡的名稱
? ? virtual_router_id 51
? ? priority 100
? ? advert_int 1
? ? authentication {
? ? ? ? ?auth_type PASS
? ? ? ? ?auth_pass 1111
? ? }
? ? virtual_ipaddress {
? ? ? ? 192.168.91.188 ? #修改vip?
? ? }
? ? ?track_script {
? ? ?check_down
?}
? ??
}
?
vim ? ?/etc/keepalived/ng.sh
killall ? -0 ? ?nginx
chmod +x ? ?/etc/keepalived/ng.sh
scp ?/etc/keepalived/keepalived.conf ? 192.168.91.101://etc/keepalived/
7-2 ?上操作
vim /etc/keepalived/keepalived.conf
?state BACKUP
?priority 80??
?router_id LVS02 ?
vim ? ?/etc/keepalived/ng.sh
killall ? -0 ? ?nginx
chmod +x ? ?/etc/keepalived/ng.sh
最后用客戶機curl 192.168.181.188 會發現7-3 7-4 出現概率大概為1:1
即使關掉7-1nginx keepalived 7-2也可以支持工作