环境: 主Haproxy服务器 192.168.80.100 keepalived+Haproxy 备Haproxy服务器 192.168.80.101 keepalived+Haproxy web服务器1 192.168.80.102 httpd(nginx、tomcat) web服务器2 192.168.80.103 httpd 80.100和80.101须要联网
———————————————————————————————————————
在80.100虚拟机上:html
systemctl stop firewalld //关闭防火墙 setenforce 0 //关闭监控
cd /etc/yum.repos.d/ //进入目录 cp back/* ./ //把back里内容移动到上一个目录 ls //查看目录内容
yum install -y epel-release yum install ntp -y //安装ntp ntpdate time1.aliyun.com //同步网络时间 date
yum install keepalived -y //安装keepalived cd //回到根目录
vi /etc/keepalived/keepalived.conf` 删除全部内容并添加如下内容: ! Configuration File for keepalived global_defs { route_id haproxy-01 } vrrp_script haproxy { 定义一个热备脚本取名为haproxy script "/opt/haproxy.sh" # 检测 haproxy 状态的脚本路径 interval 2 # 检测时间间隔 weight 2 # 若是条件成立,权重+2 } vrrp_instance VI_1 { state MASTER interface ens32 virtual_router_id 51 priority 150 advert_int 1 authentication { auth_type PASS auth_pass 1111 } track_script { # 将 track_script 块加入 instance 配置块 haproxy # 检查 HAProxy 服务是否存活 } virtual_ipaddress { 192.168.80.188 } } :wq
scp /etc/keepalived/keepalived.conf root@192.168.80.101:/etc/keepalived/keepalived.conf //把keepalived.conf传送到80.101中 yes root密码
yum install lrz* -y //安装上传软件 把haproxy软件包拉入
scp haproxy-1.5.15.tar.gz root@192.168.80.101:/root //把haproxy软件包传送到80.101中 密码
tar xf haproxy-1.5.15.tar.gz -C /opt/ //解压haproxy软件包 cd /opt/haproxy-1.5.15/
源码编译安装haproxy yum install -y \ pcre-devel \ bzip2-devel \ gcc \ gcc-c++ \ make
make TARGET=linux26 PREFIX=/usr/local/haproxy //标识64为系统 make install PREFIX=/usr/local/haproxy mkdir /etc/haproxy //建立目录 cd useradd -M -s /sbin/nologin haproxy id haproxy
cd /opt/haproxy-1.5.15/ cp examples/haproxy.cfg /etc/haproxy
vi /etc/haproxy/haproxy.cfg 修改如下内容: # chroot /usr/share/haproxy 注释这一行 uid 1000 gid 1000 在default模块下 统计页面模块内容 listen admin_stats bind 0.0.0.0:8089 stats enable mode http log global stats uri /stats stats realm Haproxy\ Statistics stats auth admin:admin #stats hide-version stats admin if TRUE stats refresh 30s web服务器/终端 listen webcluster bind 0.0.0.0:80 mode http option httpchk GET /index.html log global maxconn 3000 balance roundrobin server web01 192.168.80.102:80 check inter 2000 fall 5 server web02 192.168.80.103:80 check inter 2000 fall 5 :wq
cd /opt/ ls
vi haproxy.sh #!/bin/bash if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ];then /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg 启动haproxy服务 fi sleep 2 等待2秒 if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ];then service keepalived stop fi :wq //保存退出
chmod +x /opt/haproxy.sh //给这个文件设置权限 cd /opt/haproxy-1.5.15/ cp examples/haproxy.init /etc/init.d/haproxy chmod +x /etc/init.d/haproxy ll /etc/init.d/haproxy chkconfig --add haproxy ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin/haproxy //软连接 cat /var/log/messages
service haproxy start //启动服务
netstat -anpt | grep haproxy
在网页上输入192.168.80.100:8089/stats
scp haproxy.cfg root@192.168.80.101:/etc/haproxy/ //把haproxy.cfg 传送到80.101虚拟机上 密码
service haproxy stop netstat -anpt | grep haproxy systemctl start keepalived ip addr show ens32 netstat -anpt | grep haproxy
——————————————————————————————————————
在80.101虚拟机上:linux
systemctl stop firewalld //关闭防火墙 setenforce 0 //关闭监控
cd /etc/yum.repos.d/ //进入目录 cp back/* ./ //把back里内容移动到上一个目录 ls //查看目录内容
yum install -y epel-release yum install ntp -y //安装ntp ntpdate time1.aliyun.com //同步网络时间 date
yum install keepalived -y //安装keepalived cd //回到根目录
vi /etc/keepalived/keepalived.conf //进入成如下内容:
修改为如下内容:nginx
ls tar xf haproxy-1.5.15.tar.gz -C /opt/ cd /opt/haproxy-1.5.15/
源码编译安装haproxy yum install -y \ pcre-devel \ bzip2-devel \ gcc \ gcc-c++ \ make
make TARGET=linux26 PREFIX=/usr/local/haproxy //标识64为系统 make install PREFIX=/usr/local/haproxy mkdir /etc/haproxy useradd -s /sbin/nologin -M haproxy id haproxy
ls /etc/haproxy/ cp examples/haproxy.init /etc/init.d/haproxy chmod +x /etc/init.d/haproxy //给这个文件设置权限 chkconfig --add haproxy ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin/haproxy //软连接
service haproxy start //启动服务 netstat -anpt | grep haproxy
service haproxy stop //关闭服务 netstat -anpt | grep haproxy
cd /opt/ vi haproxy.sh #!/bin/bash #Filename: A=$(ip addr | grep 192.168.80.188/32 | grep -v grep | wc -l) if [ $A -gt 0 ]; then service haproxy start else service haproxy stop fi :wq
chmod +x haproxy.sh //设置权限 ll systemctl start keepalived ip addr show ens32 netstat -anpt | grep haproxy
————————————————————————————————————
在80.102虚拟机上:c++
systemctl stop firewalld //关闭防火墙 setenforce 0 //关闭监控
yum install httpd -y //安装httpd
vi /etc/httpd/conf/httpd.conf 把ServerName www.example.com:80 前面的#删除
cd /var/www/html/ //进入这个目录 echo "<h1>server aa</h1>" > index.html systemctl start httpd //启动服务
在网页上输入192.168.80.102
—————————————————————————————————————
在80.103虚拟机上:web
systemctl stop firewalld //关闭防火墙 setenforce 0 //关闭监控
yum install httpd -y //安装httpd
vi /etc/httpd/conf/httpd.conf 把ServerName www.example.com:80 前面的#删除
cd /var/www/html/ //进入这个目录 echo "<h1>server bb</h1>" > index.html systemctl start httpd //启动服务
在网页上输入192.168.80.103