haproxy acl mysql_关于haproxy的一些属性和acl 规则

首先是haproxy.cfg文件的基本标注

当然实际配件没有下面这个复杂,可以根据需要自行增减。

global

log 127.0.0.1 local1

maxconn 65000 #最大连接数

chroot /usr/local/haproxy #安装目录

uid 99 #用户haproxy

gid 99 #组haproxy

daemon #守护进程运行

nbproc 1 #进程数量

pidfile /usr/local/haproxy/logs/haproxy.pid #haproxy pid

defaults

log global

mode http #7层 http;4层tcp

option httplog #http 日志格式

option httpclose #主动关闭http通道

option redispatch #serverId对应的服务器挂掉后,强制定向到其他健康的服务器

option forwardfor

option dontlognull

maxconn 50000 #最大连接数

contimeout 5000 #连接超时(毫秒)

clitimeout 50000 #客户端超时(毫秒)

srvtimeout 50000 #服务器超时(毫秒)

#errorfile 502 /usr/local/haproxy/html/maintain.html

#errorfile 503 /usr/local/haproxy/html/maintain.html

#errorfile 504 /usr/local/haproxy/html/maintain.html

frontend test.com #定义前端服务器(haproxy)

bind *:80 #监听地址

acl web-client path_beg -i /vsphere-client

acl bbs hdr_reg(host) -i ^(bbs.test.com|shequ.test.com|forum)

acl monitor hdr_beg(host) -i monitor.test.com #定义ACL名称,对应的请求的主机头是monitor.test.com

acl www hdr_beg(host) -i www.test.com

use_backend cache.test.com if static

use_backend monitor.test.com if bbs or monitor

use_backend www.test.com if www

use_backend vsphere-client if web-client

default_backend www.test.com #指定默认的后端服务器

backend monitor.test.com #定义后端服务器群(web server/apache/nginx/iis..)

mode http

option forwardfor #后端服务器(apache/nginx/iis/*),从Http Header中获得客户端IP

balance leastconn #负载均衡的方式,最小连接

cookie SERVERID #插入serverid到cookie中,serverid后面可以定义

option httpchk HEAD /check.html #用来做健康检查html文档

#option httpchk HEAD /index.php HTTP/1.1\r\nHost:monitor.test.com #HTTP && Host

server server1 10.0.100.70:80 cookie server1 check inter 2000 rise 3 fall 3 weight 3

#服务器定义:

#cookie server1表示serverid为server1;

#check inter 2000 是检测心跳频率(check 默认 );

#rise 3 表示 3次正确认为服务器可用;

#fall 3 表示 3次失败认为服务器不可用;

#weight 表示权重。

backend www.test.com

mode http

option forwardfor

balance roundrobin #负载均衡的方式,轮询方式

cookie SERVERID

option httpchk HEAD /check.html

server server1 10.0.100.71:80 cookie server1 check inter 2000 rise 3 fall 3 weight 3

backend vsphere-client

mode http

option forwardfor header ORIG_CLIENT_IP

balance roundrobin

server server1 10.0.100.81:80 redir https://192.168.57.81:443 check inter 2000 rise 3 fall 3 weight 3

backend cache.test.com

option forwardfor

#balance uri len 15 #url hash

balance roundrobin

server server1 10.0.100.73:80 check inter 2000 rise 3 fall 3 weight 3

server server2 10.0.100.75:80 check inter 2000 rise 3 fall 3 weight 3

listen admin_stat #status

bind 0.0.0.0:8080 #监听端口

mode http #http的7层模式

stats refresh 30s #统计页面自动刷新时间

stats uri /haproxy_stats_url #统计页面URL

stats realm Haproxy\ Statistics #统计页面密码框上提示文本

stats auth admin:admin #统计页面用户名和密码设置

stats hide-version #隐藏统计页面上HAProxy的版本信息

stats admin if TRUE #手工启用/禁用,后端服务器

下面重点介绍一下ACL策略,这个匹配策略很重要。

下面是一个根据域名匹配的写法

acl a-server base_dom -i www.a.com

use_backend a-server if a-server

acl b-server base_dom -i www.b.com

use_backend b-server if b-server

##以下表示请求在以上路径都不符合时,使用该后台服务器处理

default_backend root

acl语法

#acl 参数

acl(关键字) 定义acl(名称) 方法(criterion) -i (flags) [匹配的路径或文件]

hdr_beg(host)

hdr_reg(host)

path_beg

path_end

criterion

#base

base : exact string match

base_beg : prefix match

base_dir : subdir match

base_dom : domain match

base_end : suffix match

base_len : length match

base_reg : regex match

base_sub : substring match

---------------------

#path

path : exact string match

path_beg : prefix match

path_dir : subdir match

path_dom : domain match

path_end : suffix match

path_len : length match

path_reg : regex match

path_sub : substring match

---------------------

#url

url : exact string match

url_beg : prefix match

url_dir : subdir match

url_dom : domain match

url_end : suffix match

url_len : length match

url_reg : regex match

url_sub : substring match

---------------------

#hdr

hdr([[,]]) : exact string match

hdr_beg([[,]]) : prefix match

hdr_dir([[,]]) : subdir match

hdr_dom([[,]]) : domain match

hdr_end([[,]]) : suffix match

hdr_len([[,]]) : length match

hdr_reg([[,]]) : regex match

hdr_sub([[,]]) : substring match

---------------------

flags

-i 不区分大小写

-m 使用指定的pattern匹配方法

-n 不做DNS解析

-u 强制每个ACL必须唯一ID,否则多个同名ACL或关系

– 强制flag结束. 当字符串和某个flag相似时使用

参考:

https://blog.csdn.net/nange_nice/article/details/78444793

https://blog.51cto.com/dngood/886547

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值