HAProxy的使用

安装

yum install -y haproxy

在这里插入图片描述

测试主机

前端
172.25.41.1:80----------haproxy
后端
172.25.41.1:8080------错误展示页面
172.25.41.2:80----------server1
172.25.41.3:80----------server2

轮询访问

编辑配置文件内容如下

frontend  main
    #acl url_static       path_beg       -i /static /images /javascript /stylesheets
    #acl url_static       path_end       -i .jpg .gif .png .css .js

bind                        *:80
#use_backend static          if url_static
default_backend             webserver

在这里插入图片描述

backend webserver
    balance     roundrobin#轮询
    server      web1 172.25.41.2:80 check
    server      web2 172.25.41.3:80 check

在这里插入图片描述
重新启动服务

systemctl restart haproxy.service

查看结果
在这里插入图片描述

日志记录

打开UDP端口

$ModLoad imudp
$UDPServerRun 514

在这里插入图片描述
拷贝/etc/haproxy/haproxy.cfg中的日志格式,写入/etc/rsyslog.conf文件中

local2.*                                                /var/log/haproxy.log

在这里插入图片描述
重新启动日志服务,访问haproxy主机,查看结果
在这里插入图片描述

状态查询

# 监控页面
stats uri           /admin/stats
# 监控页面查看用户:密码
stats auth          admin:octopus
# 监控页面刷新时间
stats refresh       2s
#状态码
monitor-uri         /monitoruri	

在这里插入图片描述
重启服务,查看页面
监控页面
| 在这里插入图片描述
状态码返回值
在这里插入图片描述

访问控制列表

设置acl列表
acl blacklist src 172.25.41.254
设置黑名单
http-request deny if blacklist

在这里插入图片描述
重启服务,访问测试
在这里插入图片描述
本机安装apche,设置主页面内容,设定端口为8080,作为错误展示页面
在这里插入图片描述
设置访问失败重定向页面

errorloc 403 http://172.25.41.1:8080/index.html

在这里插入图片描述
测试访问结果

在这里插入图片描述

动静分离

在后端服务器上均安装php,同时编辑index.php文件,并重启apache

<?php
	phpinfo();
?>

在这里插入图片描述
修改配置文件/etc/haproxy/haproxy.cfg,添加动静分离配置

frontend  main
    bind                        *:80
    # php结尾的页面交给动态
    use_backend dynamic          if { path_end .php }
    # 默认静态
    default_backend             static

backend dynamic
    balance     roundrobin
    server      web1 172.25.41.2:80 check

backend static
    server      web2 172.25.41.3:80 check

在这里插入图片描述
重新启动haproxy,查看结果
在这里插入图片描述
在这里插入图片描述

读写分离

编辑配置文件/etc/haproxy/haproxy.cfg

frontend  main
    bind                        *:80
    # 读写方式
    acl read method HEAD
    acl read method GET
    acl write method PUT
    acl write method POST
    # 访问控制
    use_backend dynamic          if write
    use_backend static          if read
    default_backend             static
backend dynamic
    balance     roundrobin
    server      web1 172.25.41.2:80 check
backend static
    server      web2 172.25.41.3:80 check

在这里插入图片描述

下载相应的php测试文件,测试结果(注意区分server2和server3,同时赋予上传目录权限(777),否则可能图片无法上传)
在这里插入图片描述
server3展示
在这里插入图片描述
在这里插入图片描述
server2接受上传文件
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值