模拟简易Web架构安装及环境说明
总体框架图
HAProxy+keepalived搭建
版本:Ubuntu18.04,HAProxy2.2编译安装,keepalived1.3.9 apt源安装。
编译安装haproxy
[root@ubuntu: /usr/local/src]# useradd -r -s /usr/sbin/nologin haproxy
[root@ubuntu: /usr/local/src]# ls
haproxy-2.2.5.tar.gz
[root@ubuntu: /usr/local/src]# tar xvf haproxy-2.2.5.tar.gz
[root@ubuntu: /usr/local/src]# apt install gcc make libssl-dev libpcre3-dev libsystemd-dev zlib1g-dev #依赖包
[root@ubuntu: /usr/local/src/haproxy-2.2.5]# make ARCH=x86_64 TARGET=linux-glibc USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_CPU_AFFINITY=1 PREFIX=/usr/local/haproxy #编译
[root@ubuntu: /usr/local/src/haproxy-2.2.5]# make install PREFIX=/usr/local/haproxy #安装
[root@ubuntu: /usr/local/haproxy]# vim /lib/systemd/system/haproxy.service #准备service文件
[Unit]
Description=HAProxy Load Balancer
After=network.target rsyslog.service
[Service]
ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q
ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
ExecReload=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target
[root@ubuntu: /usr/local/haproxy]# mkdir /var/lib/haproxy #根据配置文件创建运行所需目录
[root@ubuntu: /usr/local/haproxy]# mkdir /run/haproxy
[root@ubuntu: /usr/local/haproxy]# chown haproxy /run/haproxy
编辑haproxy配置文件,添加监听调度规则
[root@ubuntu: /usr/local/haproxy]# vim /etc/haproxy/haproxy.cfg
listen web_port_80
bind 192.168.37.44:80
mode tcp
option forwardfor
balance roundrobin
server web1 192.168.37.207:80 check addr 192.168.37.207 port 9000 weight 1 inter 3s fall 3 rise 5 #检测后端php
server web2 192.168.37.217:80 check addr 192.168.37.217 port 9000 weight 1 inter 3s fall 3 rise 5
listen mysql_port_3306
bind 192.168.37.44:3306
mode tcp
balance roundrobin
server mysql1 192.168.37.227:3306 weight 1 check inter 3s fall 3 rise 5
apt源安装keepalived,拷贝模板配置文件
[root@ubuntu: /usr/local/haproxy]# apt install keepalived
[root@ubuntu: /usr/local/haproxy]# cp /usr/share/doc/keepalived/samples/keepalived.conf.sample /etc/keepalived/keepalived.conf
编辑keepalived配置文件,实现浮动VIP
[root@ubuntu: /usr/local/haproxy]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost.com
}
notification_email_from root@centos7.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id ka_110
vrrp_skip_check_adv_addr
}
vrrp_instance VI_1 {
state MASTER #从设置为BACKUP
interface ens33
virtual_router_id 44
priority 100 #从优先级设置为80
advert_int 3
unicast_src_ip 192.168.37.110 #改为单薄模式
unicast_peer {
192.168.37.111
}
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.37.44 dev ens33 label ens33:0
}
notify_master "/etc/keepalived/notify.sh master" root #状态改变邮件通知,注意脚本要有执行权限
notify_backup "/etc/keep