Haproxy+Keepalive服務器
- 環境準備,具體內容如下
a) Haproxy版本:Haproxy-1.4.21
b) keepalived版本:keepalived v1.2.1
c) Haproxy:10.206.35.251(master)
d) Haproxy:10.206.35.251(backup) - Haproxy安裝,master和backup服務器安裝Haproxy
a) 安裝Haproxy
cd /usr/src
wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.21.tar.gz
cd haproxy-1.4.21
make TARGET=linux26 PREFIX=/usr/local/haproxy/
make install PREFIX=/usr/local/haproxy
b) 配置haproxy
cd /usr/local/haproxy/
mkdir -p etc/
touch /usr/local/haproxy/etc/haproxy.cfg
vi /usr/local/haproxy/etc/haproxy.cfg
haproxy.cfg配置信息如下
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
chroot /usr/local/haproxy
uid 99
gid 99
daemon
pidfile /usr/local/haproxy/haproxy.pid
defaults
log 127.0.0.1 local3
mode http
option httplog
option httpclose
option dontlognull
option forwardfor
retries 2
option redispatch
balance source
stats uri /web-status
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen jfe.com
bind *:80
mode http
option httplog
log global
option httpchk HEAD /index.htmp HTTP/1.0
server web1 10.206.35.251:80 weight 5 check inter 2000 rise 2 fall 3
server web1 10.206.35.251:80 weight 5 check inter 2000 rise 2 fall 3
c) 啓動Haproxy服務,代碼如下
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.cfg
報錯提示
停掉nginx - Haproxy配置文件詳解
- 安裝Keepalived安裝配置
下載安裝包
wget http://www.keepalived.org/software/keepalived-1.2.1.tar.gz
解壓安裝包
tar -zxvf keepalived-1.2.1.tar.gz
進入安裝目錄
cd keepalived-1.2.1
報錯提示
configure: error: Popt libraries is required
解決辦法
yum install popt-devel -y
make編譯
make install
設置安裝目錄變量
DIR=/usr/local/
拷備啓動文件到自動啓動
cp $DIR/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp $DIR/etc/sysconfig/keepalived /etc/sysconfig/
創建目錄
mkdir -p /etc/keepalived
cp $DIR/sbin/keepalived /usr/sbin/ - 配置Keepalived,兩臺服務器keepalived.conf內容都配置如下 ,
vi /usr/local/etc/keepalived/keepalived.conf
添加以下內容
vrrp_script chk_haproxy{
script "/data/sh/check_haproxy.sh"
interval 2
weight 2
}
修改以下內容
#VIP1
vrrp_instance VI_1 {
state MASTER
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 151
priority 100
advert_int 5
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.206.35.253
}
trackscript {
chk haproxy
}
}
BACKUP:
global_defs {
notification_email {br/>[email protected]
[email protected]br/>[email protected]
}
notification_email_from [email protected]
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_haproxy {
script "/data/sh/check_haproxy.sh"
interval 2
weight 2
}
#VIP1
vrrp_instance VI_1 {
state BACKUP
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 151
priority 90
advert_int 5
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.206.35.253
}
track_script {
chk_haproxy
} - 創建check_ haproxy腳本
haproxy.sh腳本內容如下:
創建目錄
mkdir -p /data/sh/
創建腳本文件
touch /data/sh/check_haproxy.sh
chmod +x check_haproxy.sh
vi /data/sh/check_haproxy.sh
#!/bin/bash
#auto check nginx process
#2019.9.3
#by author jay
killall -0 haproxy
if
[[ $? -ne 0 ]]; then
/etc/init.d/keepalived stop
fi - 檢查相應服務是否啓動
a)
b) - 在兩臺haproxy+keepalived服務器發佈目錄分別新建index.html測試頁面,然後啓動Nginx服務器測試,訪問VIP地址:http://10.206.35.188
- 檢查主備服務器Haproxy服務是否啓用
Master
http://10.206.35.251/web-status
Backup
http://10.206.35.252/web-status - 測試keepalive自動切換功能
手動kill其中一臺的Haproxy進程,另一臺後臺日誌顯示如下,並且訪問VIP正常訪問,證明Haproxy+keepalived高可用架構配置完畢。