haproxy之ACL规则

您所在的位置:网站首页 haproxy配置转发 haproxy之ACL规则

haproxy之ACL规则

2024-07-10 21:32:55| 来源: 网络整理| 查看: 265

haproxy支持ACL规则

,用于定义三层到七层的规则来匹配一些特殊的请求,实现基于请求报文首部、相应报文内容或者是一些其他状态信息,从而根据需求进行不同的策略转发响应。

可以通过ACL规则完成以下两种主要功能: 1、通过设置ACL规则来检查客户端请求是否符合规则,将不符合规则要求的请求直接中断; 2、符合ACL规则的请求由backend指定的后端服务器池执行基于ACL规则的负载均衡,不符合的可以直接中断响应,也可以交由其它服务器池执行。

Haproxy中的ACL汇总设置在frontend部分

语法: acl 名称 方法 -i [匹配的路径或文件]

说明: acl:区分字符大小写,且其只能包含大小写字母、数字、-(连接线)、_(下划线)、.(点号)和:(冒号);haproxy中,acl可以重名,这可以把多个测试条件定义为一个共同的acl。

-i:忽略大小写 -f:从指定的文件中加载模式;

方法:用来设定实现ACL的方法。 常用的方法: 1、hdr_beg(host):用于测试请求报文的指定首部的开头部分是否符合指定的模式 例子: acl host_static hdr_beg(host) -i img. video. download. ftp. 测试请求是否为提供静态内容的主机img、video、download或ftp。

2、hdr_end(host):用于测试请求报文的指定首部的结尾部分是否符合指定的模式 例子: acl host_static hdr_beg(host) -i .aa.com .bb.com

3、hdr_reg(host):正则匹配 例子: acl bbs hdr_reg(host) -i ^(bbs.test.com|shequ.test.com|forum)

4、url_sub:表示请求url中包含什么字符串 5、url_dir:表示请求url中存在哪些字符串作为部分地址路径

6、path_beg: 用于测试请求的URL是否以指定的模式开头 例子: acl url_static path_beg -i /static /iilannis /javascript /stylesheets 用于测试URL是否以/static、/iilannis、/javascript或/stylesheets开头。

7、path_end:用于测试请求的URL是否以指定的模式结尾 例子: acl url_static path_end -i .jpg .gif .png .css .js 测试URL是否以.jpg、.gif、.png、.css或.js结尾。

也可以根据访问的地址和端口进行规制设置: dst:目标地址 dst_port:目标端口 src:源地址 src_port:源端口

实现的结果: 当客户端访问haproxy时,请求的是静态文件内容时,请求转交给static server,请求的是php内容时,请求转交给php server,请求的是jsp内容时,请求转交给tomcat server,以实现动静分离。

先部署三台web服务器: 一台httpd支持php 一台部署nginx支持静态资源 一台tomcat支持jsp

yum install -y pcre-devel bzip2-devel gcc gcc-c++ make

tar xzvf haproxy-1.5.15.tar.gz -C /opt

cd /opt/haproxy-1.5.15 make TARGET=linux26 PREFIX=/usr/local/haproxy //标识64为系统 make install PREFIX=/usr/local/haproxy

mkdir /etc/haproxy

useradd -s /sbin/nologin -M haproxy

cp /opt/haproxy-1.5.15/examples/haproxy.cfg /etc/haproxy/

vi /etc/haproxy/haproxy.cfg

#--------------------------------------------------------------------- Global settings #--------------------------------------------------------------------- global log 127.0.0.1 local3 maxconn 204800 chroot /usr/local/haproxy user haproxy group haproxy daemon nbproc 1 pidfile /var/run/haproxy.pid stats socket /usr/local/haproxy/stats description haproxy server #--------------------------------------------------------------------- #common defaults that all the ‘listen’ and ‘backend’ sections will #use if not designated in their block #--------------------------------------------------------------------- defaults log global mode http maxconn 10000 option httplog option httpclose option dontlognull option forwardfor except 127.0.0.0/8 retries 3 option redispatch option abortonclose balance roundrobin timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s #--------------------------------------------------------------------- #use listen setting the haproxy status for site #--------------------------------------------------------------------- listen admin_status #设置haproxy监控状态 bind *:8089 mode http log 127.0.0.1 local3 err stats refresh 5s stats uri /status #监控状态页面访问url stats realm www.skeryp.com stats auth admin:admin stats hide-version stats admin if TRUE #--------------------------------------------------------------------- #main listen which proxys to the backends #--------------------------------------------------------------------- listen www bind *:80 maxconn 5000 mode http log global option httplog option httpclose option forwardfor log global

default_backend default #设置默认访问页面 #定义当请求的内容是静态内容时,将请求转交给static server的acl规则 acl url_static path_beg -i /static /images /img /javascript /stylesheets acl url_static path_end -i .jpg .gif .png .css .js .html acl host_static hdr_beg(host) -i img. video. download. ftp. imags. videos. #定义当请求的内容是php内容时,将请求转交给php server的acl规则 acl url_php path_end -i .php #定义当请求的内容是.jsp或.do内容时,将请求转交给tomcat server的acl规则 acl url_jsp path_end -i .jsp .do #引用acl匹配规则 use_backend static_pool if url_static or host_static use_backend php_pool if url_php use_backend tomcat_pool if url_jsp

#定义后端backend server backend static_pool option httpchk GET /index.html server static1 192.168.80.101:80 cookie id1 check inter 2000 rise 2 fall 3 backend php_pool option httpchk GET /info.php server php1 192.168.80.102:80 cookie id1 check inter 2000 rise 2 fall 3 backend tomcat_pool option httpchk GET /index.jsp server tomcat1 192.168.80.103:8086 cookie id2 check inter 2000 rise 2 fall 3

# backend default mode http option httpchk GET /index.html server default 192.168.80.104:80 cookie id1 check inter 2000 rise 2 fall 3 maxconn 5000



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭