一、Haproxy环境搭建,轮询实现。

实验环境:
server2             IP:172.25.64.2            haproxy服务器
server3             IP:172.25.64.3			  web1
server4				IP:172.25.64.4			  web2
foundation64		IP:172.25.64.250          测试:客户端

haproxy服务器

修改yum源,添加高可用、负载均衡安装包。

Top Command Counters监控指标中文 haproxy监控指标_服务器

下载配置haproxy

yum install haproxy -y
cd /etc/haproxy/
vim haproxy.cfg          ##配置文件

注释60—85 行内容

Top Command Counters监控指标中文 haproxy监控指标_重定向_02

文件末尾编写轮询机制以及监控页面:

Top Command Counters监控指标中文 haproxy监控指标_vim_03


开启haproxy使配置文件生效:

Top Command Counters监控指标中文 haproxy监控指标_重定向_04

web1、web2

yum install httpd -y

Top Command Counters监控指标中文 haproxy监控指标_服务器_05


Top Command Counters监控指标中文 haproxy监控指标_vim_06


重启apache。

测试

Top Command Counters监控指标中文 haproxy监控指标_服务器_07

二、 haproxy负载均衡服务器监控实验。

测试页面:172.25.64.2:8080/status

Top Command Counters监控指标中文 haproxy监控指标_重定向_08


输入帐号密码登陆,登陆成功显示监控页面:

Top Command Counters监控指标中文 haproxy监控指标_重定向_09

实验1.查看被访问次数

Top Command Counters监控指标中文 haproxy监控指标_vim_10


Top Command Counters监控指标中文 haproxy监控指标_vim_11

实验2.进行健康检查

将web1的apache关闭。

Top Command Counters监控指标中文 haproxy监控指标_vim_12


Top Command Counters监控指标中文 haproxy监控指标_vim_13

因为web1故障,故连续访问web2.

Top Command Counters监控指标中文 haproxy监控指标_重定向_14

监控显示web1 DOWN。
因为haproxy是工作在应用层的,可以对Http的报文进行直接的处理,所以可以具有健康检查的功能,而lvs是工作在OSI模型的下四层的,不能得到http报文的数据,所以不具备健康检查的功能。

三、动静页面分离

动态网页:只有一个ip
静态网页:ip+具体目录

将动态页面和静态页面分离在两个不同的web服务器。

1.haproxy服务器

编写配置文件:

Top Command Counters监控指标中文 haproxy监控指标_服务器_15

/etc/init.d/haproxy reload           ## 重载
yum install httpd -y                 ##安装apache

Top Command Counters监控指标中文 haproxy监控指标_重定向_16

更改监听端口为8000
vim  /etc/httpd/conf/httpd.conf

Top Command Counters监控指标中文 haproxy监控指标_vim_17


Top Command Counters监控指标中文 haproxy监控指标_服务器_18

2.静态web服务器(web2)

Top Command Counters监控指标中文 haproxy监控指标_服务器_19

/etc/init.d/httpd restart

动态主备测试

当web1和local同时在线,访问web1.

Top Command Counters监控指标中文 haproxy监控指标_重定向_20

关闭web1,跳转到local

Top Command Counters监控指标中文 haproxy监控指标_重定向_21

静态页面访问

Top Command Counters监控指标中文 haproxy监控指标_重定向_22

Top Command Counters监控指标中文 haproxy监控指标_服务器_23

四、haxproxy服务日志

vim /etc/rsyslog.conf               ##更改日志配置

Top Command Counters监控指标中文 haproxy监控指标_服务器_24

Top Command Counters监控指标中文 haproxy监控指标_服务器_25


指定日志保存路径。

Top Command Counters监控指标中文 haproxy监控指标_vim_26

五、错误重定向

1. http的403错误重定向

vim /etc/haproxy/haproxy.cfg (添加黑色部分)

Top Command Counters监控指标中文 haproxy监控指标_vim_27

测试:

Top Command Counters监控指标中文 haproxy监控指标_vim_28


重定向成功!

2.所有错误重定向

vim /etc/haproxy/haproxy.cfg

Top Command Counters监控指标中文 haproxy监控指标_重定向_29

测试:

Top Command Counters监控指标中文 haproxy监控指标_重定向_30

六、网页重定向

配置:

vim /etc/haproxy/haproxy.cfg

Top Command Counters监控指标中文 haproxy监控指标_vim_31


301:之前网站不再可用,永久性被移除(网站迁移)

302:只是此次重定向了(盗链,恶意刷流量)

浏览器拿到服务器返回的状态码,重定向到一个新地址

[root@server2 haproxy]# /etc/init.d/haproxy reload

测试:

主机配置解析:

Top Command Counters监控指标中文 haproxy监控指标_重定向_32


在浏览器中输入172.25.64.2或者westos.org都跳转到www.westos.org

Top Command Counters监控指标中文 haproxy监控指标_重定向_33

七、读写分离:

web服务器

yum install php -y

将upload目录同步

Top Command Counters监控指标中文 haproxy监控指标_重定向_34

vim upload_file.php

Top Command Counters监控指标中文 haproxy监控指标_重定向_35

Top Command Counters监控指标中文 haproxy监控指标_vim_36

/etc/init.d/httpd restart

haproxy服务器

vim /etc/haproxy/haproxy.cfg

Top Command Counters监控指标中文 haproxy监控指标_重定向_37

测试:

写测试:

访问www.westos.org 到/var/www/html/upload目录下

Top Command Counters监控指标中文 haproxy监控指标_vim_38

保存图片:

Top Command Counters监控指标中文 haproxy监控指标_重定向_39


Top Command Counters监控指标中文 haproxy监控指标_重定向_40

读测试:

访问/images则访问的web2

Top Command Counters监控指标中文 haproxy监控指标_重定向_41