(十八)企业部分之haproxy
需要四台虚拟机【server1/server2】
yum install -y haproxy
【server2】
vim /etc/haproxy/haproxy.cfg 将63行到最后(86行)的语句全部注释掉,并在最后添上以下内容:
listen westos *:80
balance roundrobin
server web1 172.25.45.3:80 check
server web2 172.25.45.4:80 check
/etc/init.d/haproxy start
netstat -antlpe | grep :80http://s1.运维网.com/wyfs02/M01/85/1F/wKiom1eaOmSBX4ZAAAA8rwb5pls825.png
测试:
http://172.25.45.2/
http://s3.运维网.com/wyfs02/M00/85/1F/wKioL1eaOmXiAvYzAABG-q_-euk333.png
【server3/server4】
yum install -y httpd
echo server3.example.com > /var/www/html/index.html##server4写入server4.example.com 开启server3的http服务
http://s3.运维网.com/wyfs02/M01/85/1F/wKioL1eaOmWxuQixAAArmAJI8QE880.png
开启server4的http服务
网页可在server3与server4之间切换
vim haproxy.cfg 将最后的内容修改为以下:
listen westos *:80
balance roundrobin
server web1 172.25.45.3:80 check weight 1
server web2 172.25.45.4:80 check weight 3
/etc/init.d/haproxy reload 网页http://172.25.45.2/
权重改变,server4.example.com 3次,server3.example.com 1次
vim haproxy.cfg 在58行之后添加以下内容:
stats uri /status
http://s2.运维网.com/wyfs02/M01/85/1F/wKiom1eaOmahP7j1AAANwCUu5R8628.png
/etc/init.d/haproxy reload 网页http://172.25.45.2/status
http://s4.运维网.com/wyfs02/M02/85/1F/wKiom1eaOpORgRAKAAEg6LlfaBE522.png
vim haproxy.cfg 将最后的内容修改为以下:
frontend westos *:80
default_backend web
backend web
balance roundrobin
server web1 172.25.45.3:80 check weight 1
server web2 172.25.45.4:80 check weight 3
/etc/init.d/haproxy reload 网页http://172.25.45.2/status
http://s4.运维网.com/wyfs02/M01/85/1F/wKioL1eaOpTAGNq1AAD6kLvI78g766.png
vim haproxy.cfg
将最后的内容修改为以下:
frontend westos *:80
default_backend web
backend web
balance roundrobin
server web1 172.25.45.3:80 check weight 1
server web2 172.25.45.4:80 check weight 3
server backup 127.0.0.1:8080 backup
/etc/init.d/haproxy reload
vim /etc/httpd/conf/httpd.conf 将136行的80端口改为8080
/etc/init.d/httpd start
echo "Please try again later" > /var/www/html/index.html
测试:
网页http://172.25.45.2/
关闭server3的http服务
此时网页显示server4.example.com
再关闭server4的http服务
此时网页显示Please try again later
若是此时开启server3或server4则网页会切到server3或server4节点上
server3/server4都开启http服务
vim haproxy.cfg 修改最后的内容,将backend web下的 balance 后的值改为source
http://s4.运维网.com/wyfs02/M02/85/1F/wKiom1eaOpSCYjkHAAAyVzYu1uU533.png
/etc/init.d/haproxy reload
网页http://172.25.45.2/
锁定在当前页面
vim haproxy.cfg 修改最后的内容,将backend web下的 balance 后的值改为leastconn
/etc/init.d/haproxy reload
网页http://172.25.45.2/
不受权重影响,server3和server4可以平均切换
vim haproxy.cfg 修改最后的内容,将backend web下的 balance 后的值改为roundrobin
vim /etc/rsyslog.conf 取消13、14行的注释,并在61行下面添加以下内容:
local2.* /var/log/haproxy.log
http://s4.运维网.com/wyfs02/M01/85/1F/wKiom1eaO3SBQbbzAAAe7G7dsMs248.png
/etc/init.d/rsyslog restart
tail -f /var/log/haproxy.log 刷新网页http://172.25.45.2/
查看是否有日志生成
vim haproxy.cfg 在58行之后之前添加的“stats uri /status”之后添加以下内容:
stats auth admin:westos
http://s1.运维网.com/wyfs02/M01/85/1F/wKioL1eaO6iBJvGpAAAURnF6rn0769.png
/etc/init.d/haproxy reload
网页http://172.25.45.2/status
http://s5.运维网.com/wyfs02/M00/85/1F/wKioL1eaO7TAnw51AABYgH6MnQw337.png
有一个安全认证,用户名为admin,密码为westos
vim haproxy.cfg 将最后的内容修改为以下:
frontend westos *:80
acl bad src 172.25.45.250
block if bad
default_backend web
backend web
balance roundrobin
server web1 172.25.45.3:80 check weight 1
server web2 172.25.45.4:80 check weight 3
server backup 127.0.0.1:8080 backup
/etc/init.d/haproxy reload
网页http://172.25.45.2/
http://s4.运维网.com/wyfs02/M02/85/1F/wKiom1eaO7-COdvEAABRXtVg-ew313.png
vim haproxy.cfg 将最后的内容修改为以下:
frontend westos *:80
acl bad src 172.25.45.250
block if bad
errorloc 403 http://172.25.45.2:8080
default_backend web
backend web
balance roundrobin
server web1 172.25.45.3:80 check weight 1
server web2 172.25.45.4:80 check weight 3
server backup 127.0.0.1:8080 backup
/etc/init.d/haproxy reload
网页http://172.25.45.2/
http://s5.运维网.com/wyfs02/M01/85/1F/wKiom1eaO9ijtEocAAA-w1j52xQ773.png
vim haproxy.cfg 将最后的内容修改为以下:
frontend westos *:80
acl bad src 172.25.45.250
# block if bad
# errorloc 403 http://172.25.45.2:8080
redirect location http://172.25.45.3:80 if bad
default_backend web
backend web
balance roundrobin
server web1 172.25.45.3:80 check weight 1
server web2 172.25.45.4:80 check weight 3
server backup 127.0.0.1:8080 backup
/etc/init.d/haproxy reload
网页http://172.25.45.2/
会自动跳转到server3的页面
http://s2.运维网.com/wyfs02/M02/85/1F/wKioL1eaO-Sgf2QYAAA8pmQk8IE585.png
【server3/server4】
cd /var/www/html/
mkdir admin
cd admin/
echo hello > index.html
【server2】
vim haproxy.cfg 将最后的内容修改为以下:
frontend westos *:80
acl bad src 172.25.45.250
acl denyfile path /admin/
# block if bad
# errorloc 403 http://172.25.45.2:8080
# redirect location http://172.25.45.3:80 if bad
http-request deny if denyfile bad
default_backend web
backend web
balance roundrobin
server web1 172.25.45.3:80 check weight 1
server web2 172.25.45.4:80 check weight 3
server backup 127.0.0.1:8080 backup
/etc/init.d/haproxy reload
网页http://172.25.45.2/admin
看不到下面的内容
http://s1.运维网.com/wyfs02/M00/85/1F/wKiom1eaO-_RjOQhAABVpR3og6g132.png
vim haproxy.cfg 将最后的内容修改为以下:
frontend westos *:80
acl bad src 172.25.45.250
acl denyfile path /admin/
# block if bad
# errorloc 403 http://172.25.45.2:8080
# redirect location http://172.25.45.3:80 if bad
# http-request deny if denyfile bad
default_backend web
backend web
balance roundrobin
server web1 172.25.45.3:80 check weight 1
server web2 172.25.45.4:80 check weight 1
server backup 127.0.0.1:8080 backup
/etc/init.d/haproxy reload
网页http://172.25.45.2/admin
会自动切到server3上的/var/www/html/admin/,显示其下的内容
http://s3.运维网.com/wyfs02/M00/85/1F/wKioL1eaO_2w14YiAAA6r5LMDsc041.png
【server3/server4】
cd /var/www/html/admin
echo hello by server3 > index.html ##server4上写入echo hello by server4 > index.html
网页http://172.25.45.2/admin
会在hello by server3和hello by server4中来回切换
vim haproxy.cfg 取消“http-request deny if denyfile bad”的注释
/etc/init.d/haproxy reload
网页http://172.25.45.2/
可以在serrver3和server4中来回切换
网页http://172.25.45.2/admin
不显示内容
vim haproxy.cfg 将最后的内容修改为以下:
frontend westos *:80
acl bad src 172.25.45.250
acl denyfile path /admin/
# block if bad
# errorloc 403 http://172.25.45.2:8080
# redirect location http://172.25.45.3:80 if bad
# http-request deny if denyfile bad
acl url_static path_beg -i /static /images /javascript /stylesheets
acl url_static path_end -i .jpg .gif .png .css .js
use_backend images if url_static
default_backend upload
backend images
balance roundrobin
server web1 172.25.45.3:80 check weight 1
server backup 127.0.0.1:8080 backup
backend upload
server web2 172.25.45.4:80 check weight 1
/etc/init.d/haproxy reload
【server3】
cd /var/www/html/
mkdir images ##下载一张图片到该目录
lshttp://s2.运维网.com/wyfs02/M01/85/1F/wKioL1eaPCTwN_nsAAAMPpM1h5c201.png
网页http://172.25.45.2/
只显示server4.example.com
http://s1.运维网.com/wyfs02/M02/85/1F/wKiom1eaPCTjfbQkAAA6zHDaoBE990.png
网页http://172.25.45.2/images/1.png
http://s5.运维网.com/wyfs02/M02/85/1F/wKioL1eaPCWhxjIjAACwbXwsidc876.png
vim haproxy.cfg 将最后的内容修改为以下:
frontend westos *:80
acl bad src 172.25.45.250
acl denyfile path /admin/
# block if bad
# errorloc 403 http://172.25.45.2:8080
# redirect location http://172.25.45.3:80 if bad
# http-request deny if denyfile bad
acl url_static path_beg -i /static /images /javascript /stylesheets
acl url_static path_end -i .jpg .gif .png .css .js
acl read method GET
acl read method HEAD
acl write method PUT
acl write method POST
use_backend images if url_static
use_backend images if read
use_backend upload if write
default_backend upload
backend images
balance roundrobin
server web1 172.25.45.3:80 check weight 1
server backup 127.0.0.1:8080 backup
backend upload
server web2 172.25.45.4:80 check weight 1
/etc/init.d/haproxy reload
所需软件:在upload/目录下,将其放到server4的/var/www/html下,赋予权限chmod 777 upload/
http://s1.运维网.com/wyfs02/M01/85/1F/wKiom1eaPDfgLFG_AAA0knwMRHA722.png
【server3/server4】
yum install -y php
/etc/init.d/httpd restart
网页http://172.25.45.2/upload/
http://s2.运维网.com/wyfs02/M01/85/1F/wKiom1eaPJmBV0AgAABOhxaNnkM008.png
【server3】
/etc/init.d/httpd stop
网页http://172.25.45.2/upload/
http://s2.运维网.com/wyfs02/M00/85/1F/wKioL1eaPHzRTFPqAABmCFIGfjk896.png
不显示
/etc/init.d/httpd start
【server4】
cd /var/www/html/upload
vim upload_file.php 将第5行的大小改成200000000
http://s2.运维网.com/wyfs02/M01/85/1F/wKioL1eaPKOx7qYmAAA9AkVUsXo045.png
cd upload/
mkdir upload
chmod 777 upload/
【server2】
tail -f /var/log/haproxy.loghttp://s1.运维网.com/wyfs02/M02/85/1F/wKiom1eaPLbR82RNAABMVmJxX8Q626.png
http://s1.运维网.com/wyfs02/M02/85/1F/wKiom1eaPLXSS8hvAABrMoKMbBo633.png
http://s1.运维网.com/wyfs02/M02/85/1F/wKioL1eaPLaiR5shAAAN1OkSLHw693.png
http://s2.运维网.com/wyfs02/M00/85/1F/wKiom1eaPNmgiaY7AABN9TGF8os510.png
##结合实现集群##
【server1】
/etc/init.d/corosync start
【server2】
/etc/init.d/corosync start
crm_monhttp://s5.运维网.com/wyfs02/M00/85/1F/wKioL1eaPNrhL5SkAACdHIdevwc751.png
【server1】
# crm
crm(live)# resource
crm(live)resource# show
http://s4.运维网.com/wyfs02/M01/85/20/wKiom1eaPRSgJYm8AABZsu-lfyA640.png
crm(live)resource# stop mygroup
crm(live)resource# show ##同上图,没有停止
crm(live)resource# stop sqldataclone
crm(live)resource# show
http://s1.运维网.com/wyfs02/M01/85/1F/wKioL1eaPRXRNWbXAABOOpQ_FL8627.png
crm(live)resource# stop sqlfs
http://s5.运维网.com/wyfs02/M02/85/20/wKiom1eaPRXQ1qzRAABYq0stJHc754.png
crm(live)resource# cd
crm(live)# configure
crm(live)configure# delete mygroup
crm(live)configure# delete sqldataclone
crm(live)configure# delete sqlfs
crm(live)configure# delete sqldata
crm(live)configure# delete mysql
crm(live)configure# show
http://s3.运维网.com/wyfs02/M02/85/1F/wKioL1eaPTjT3XKUAADon1fF6dY992.png
http://s3.运维网.com/wyfs02/M00/85/20/wKiom1eaPTii-1FlAAAj1TrF0Ko650.png
【server2】
cd /etc/haproxy
scp haproxy.cfg 172.25.45.1:/etc/haproxycrm_mon
【server1】
crm(live)configure# primitive haproxy lsb:haproxy op monitor interval=30s
crm(live)configure# commit
http://s1.运维网.com/wyfs02/M00/85/1F/wKioL1eaPTnhQx1WAAAukOCJlHI971.png
crm(live)configure# group hagroup vip haproxy
crm(live)configure# commit
http://s1.运维网.com/wyfs02/M02/85/1F/wKioL1eaPTnB1BicAAA2z98OBqM057.png
网页http://172.25.45.100/
http://s5.运维网.com/wyfs02/M00/85/20/wKiom1eaPWmCtultAAAt34x_bQ4796.png
http://172.25.45.100/upload/
http://s3.运维网.com/wyfs02/M00/85/1F/wKioL1eaPWqzJozhAABAj9WRBzo700.png
http://172.25.45.100/status
http://s5.运维网.com/wyfs02/M01/85/20/wKiom1eaPWvwTKWmAADCSuSaWTk111.png
crm(live)configure# cd
crm(live)# node
crm(live)node# standby server2.example.com
http://s1.运维网.com/wyfs02/M01/85/20/wKiom1eaPYPxYtcsAAA_irFtol8454.png
crm(live)node# online server2.example.com
http://s4.运维网.com/wyfs02/M01/85/1F/wKioL1eaPYTTNjdQAAA2UBez_-Q607.png
页:
[1]