1、安装
方法一:采用yum源直接安装
方法二:使用下载的源码包进行安装,在安装时可使用rpm-biuld将包制作成rpm包进行安装。
2、环境设置
rh7.3
haproxy服务器:172.25.69.1
Apache服务器:172.25.69.2
Apache服务器:172.25.69.3
本地测试主机:172.25.69.250
3、轮询的实现
(1)编辑配置文件
路径:/etc/haproxy/haproxy.cfg
frontend main *:80
#acl url_static path_beg -i /static /images /javascript /stylesheets
#acl url_static path_end -i .jpg .gif .png .css .js
#use_backend static if url_static
default_backend static #默认使用static
backend static
balance roundrobin
server static1 172.25.69.2:80 check
server static2 172.25.69.3:80 check
(2)本地主机进行测试
4、日志管理
(1)编辑rsylog
添加以下内容
local2.* /var/log/haproxy.log
(2)修改配置文件
log 127.0.0.1 local2
(3)重启服务
重启rsylog及haproxy
(4)使用本地主机访问haproxy服务器
访问后产生日志
5、查看服务器状态
(1)修改配置文件的default模块为
stats uri /admin/stats
#在浏览器中172.25.69.1/admin/stats,可查看各个状态
stats auth admin:admin
#设置进入查看状态页面的账户和密码
monitor-uri /monitoruri
#查看当前服务器返回的状态码
stats refresh 5s
#状态刷新时间
acl blacklist src 172.25.69.250
#设置黑名单
http-request deny if blacklist
errorloc 403 http://172.25.69.1:8080/index.html #80端口用来轮询,错误页面只能通过8080
(2)haproxy服务器安装Apache用于发布错误页面
(3)进行测试
1、进入查看状态页面需输入帐号密码
2、查看服务器的状态
3、查看服务器的状态码
4、当处于黑名单的用户进行访问
6、动静分离
一台Apache服务器用于访问静态页面,一台用于访问动态页面
(1)修改配置文件
路径:/etc/haproxy/haproxy.cfg
在frontend模块处
default_backend static
use_backend dynamic if { path_end .php }
将backend修改为如下:
backend static
balance roundrobin
server static1 172.25.69.2:80 check
#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend dynamic
balance roundrobin
server dynameic1 172.25.69.3:80 check
(2)分别在Apache服务器上设置发布页面
(3)测试
访问的内容为动态页面,则访问Apache服务器2
访问的内容为静态页面,则访问Apache服务器1
7、读写分离
一台Apache服务器用于读取数据,一台用于上传数据
(1)修改配置文件
在default模块
acl read method HEAD
acl read method GET
acl write method POST
acl write method PUT
use_backend static if write
use_backend dynamic if read
在bekend模块
backend static
balance roundrobin
server static1 172.25.69.2:80 check
backend dynamic
balance roundrobin
server dynameic1 172.25.69.3:80 check
(2)测试
Apache服务器1得到上传数据