環境: 主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