基礎環境
vip:10.0.1.15
Director節點 lvs-1:10.0.1.8 (master) Director節點 lvs-2:10.0.1.9 (backup)
Real server1 web1:10.0.1.4 Real server1 web2:10.0.1.5
服務部署
yum在線裝
yum -y install keepalived
master主機keepalive 配置
/etc/keepalived/keepalived.conf
! Configuration File for keepalived
vrrp_instance VI_1 {
#備用服務器上爲 BACKUP
state MASTER
#綁定vip的網卡爲eth0,根據實際主機情況
interface eth0
virtual_router_id 50
#備用服務器priority爲90
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass LVSPass
}
virtual_ipaddress {
10.0.1.15
}
}
virtual_server 10.0.1.15 80 {
#(每隔10秒查詢realserver狀態)
delay_loop 10
#(lvs 算法)
lb_algo wlc
#(DR模式)
lb_kind DR
#(同一IP的連接60秒內被分配到同一臺realserver)
persistence_timeout 0
#(用TCP協議檢查realserver狀態)
protocol TCP
######### 後端web ###########
real_server 10.0.1.4 80 {
#(權重)
weight 100
TCP_CHECK {
#(10秒無響應超時)
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 10.0.1.5 80 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
啓動服務
systemctl start keepalived
systemctl enable keepalived
keepalived查看
ps aux |grep keepalived
ip add
backup主機keepalive 配置
三個區別參數 /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
#備用服務器上爲 BACKUP
state BACKUP
#綁定vip的網卡爲eth0,根據實際主機情況
interface eth0
#備用服務器上爲90
priority 90
......
開啓轉發
echo 1 > /proc/sys/net/ipv4/ip_forward
grep ip_forward /etc/sysctl.conf &>/dev/null || echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
lvs_rs.sh
/opt/lvs_rs.sh
yum -y install ipvsadm
#read -p "請輸入vip地址:" vip
vip=10.0.1.15
#把vip綁定在lo上,是爲了實現rs直接把結果返回給客戶端
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作爲更改arp內核參數,目的是爲了讓rs順利發送mac地址給客戶端
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
nginx兩臺配置
server {
listen 80 default_server;
default_type application/json;
server_name _;
return 200 '{"date":"$time_local","host":"web-2","result":"nginx json"}';
access_log /usr/local/nginx/logs/default.log;
}
#禁止ip直接訪問
查看狀態
ipvsadm -ln
ipvsadm -ln --stats
ipvsadm -ln --rate