博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2019/06/13 M haproxy动静分离进阶及生产环境常见案例
阅读量:3925 次
发布时间:2019-05-23

本文共 1585 字,大约阅读时间需要 5 分钟。

在这里插入图片描述

haproxy的配置中,有很多是基于条件来实现的
acl就是去实现标记不同的客户端请求。或者对请求和响应进行分类,分类以后,可以完成条件式转发或者阻断用户请求
使用访问控制列表(ACL)提供了一个灵活的解决方案来执行
内容切换,通告对应的分类请求和响应的内容进行决策
从请求、响应或任何环境状态。
能够分类请求和响应报文,并根据响应报文的分类结果做出决策,做访问控制的
在这里插入图片描述
nginx可以用location关键词来过滤请求,haproxy这个功能是依靠acl来实现的,定义一个所谓的分类条件以后,所有能被匹配到的条件都可以被此分类去匹配到,而以后的内容可以进行条件式访问控制
在haproxy当中,定义acl的放式也很简单
aclname,名称式当前acl的标识符,这个名称和代理名称相似,区分大小写
两个acl可以使用同一个名字,但条件不一样,就代表请求或响应报文匹配任何一条都生效
在这里插入图片描述
criterion匹配的值,请求和响应报文的匹配
operation大于小于某个指定的value,吧对应的检查标准和指定的值基于所指定的操作符做比较,如果符合条件为真,否则为假
在这里插入图片描述
在这里插入图片描述
字符串有很多变种,精确匹配,子串匹配,subdir子路径匹配,doman子域名匹配
在这里插入图片描述
16进程数据块
在这里插入图片描述
flags表示标记位
在这里插入图片描述
-m特殊的模式匹配方法,一般很少用到
-n禁止dns做解析
-u表示acl必须使用唯一id
–表示强制解除flag
整数值,等于,大于等于,大于,小于
在这里插入图片描述
在这里插入图片描述
精确匹配,子串匹配,前缀匹配,后缀匹配,子路径匹配,域名匹配
下面是对路径
在这里插入图片描述
!取反
在这里插入图片描述
tcp报文只能检查,网络层匹配,源ip,目标ip,
传输层能匹配源端口,目标端口
应用层能匹配任何首部,host,cookie…
在这里插入图片描述dst 目标ip
des port目标端口
srcip 源ip
srcport源端口
acl只分类,要控制还要靠其他的指令来实现
非法的源ip地址
在这里插入图片描述
7层检查机制,block,阻塞访问的
if如果条件满足,就block
在这里插入图片描述
acl定义在
所以阻断用户可以在前端进行
在这里插入图片描述
先定义后调用

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

制作一个403页面
在这里插入图片描述
在这里插入图片描述
一旦被阻断可以用errorfile
在这里插入图片描述
在这里插入图片描述
也可以跳转
在这里插入图片描述
基于302跳转
在这里插入图片描述
在这里插入图片描述
block3,4,7层的逻辑都能实现
在这里插入图片描述
既可以做允许也可以做拒绝
tcp只能实现3,4层的访问逻辑
在这里插入图片描述
在这里插入图片描述
**criterion除了指定源地址,目标地址,端口以外,还可以指定其他的信息
**
在这里插入图片描述
可以检查请求的url
在这里插入图片描述
path的变种
精确匹配,前缀匹配,后缀匹配
pathreg正则表达式匹配
dom域名匹配
在这里插入图片描述
有path就可以定义url什么时候开始,什么时候结尾
-i不区分大小写
在这里插入图片描述
有后端多个集群,就可以使用use_backend
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
url精确匹配
beg前缀
dir路径
dom域名
end
在这里插入图片描述
是否可以检查用户请求时的协议类型
name代表指定的首部
只匹配出现相同报文的最后一个
在这里插入图片描述
在这里插入图片描述
正常web访问都是通过80请求
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
新加一个虚拟机,用nmtui
在这里插入图片描述
在这里插入图片描述
装一个websrv程序
在这里插入图片描述
在这里插入图片描述
查看启动失败的原因
在这里插入图片描述
在这里插入图片描述
server应该有名字的
在这里插入图片描述
再次修改
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对curlsrv4层检查是可以的
在这里插入图片描述
在后端服务器上创建主页
哎后
在这里插入图片描述
在这里插入图片描述
之前200是阻断了,所以访问不到
在这里插入图片描述
在这里插入图片描述
这个就是条件式转发请求
在这里插入图片描述
匹配用户请求的报文首部,如果符合字符串就用下面的,如果不符合就用defaultbackend
在这里插入图片描述
假如想用haproxy做动静分离,php结尾的发送给php服务器,其他内容发送另外服务器
haproxy并不支持fastcgi协议
在这里插入图片描述
后端可以采用np(nginx php)或者ap(apache php)
在这里插入图片描述
该如何去写这个动静分离
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
直接请求没有问题
在这里插入图片描述
动态页面请求发往node1,其他的往另外的服务器转发
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样就动静分离了
在这里插入图片描述
对于haproxy而言还有很多内建的acl
在这里插入图片描述
动静分离的
在这里插入图片描述
haproxy支持https
在这里插入图片描述
pem格式带表既要包含证书,也要包含私钥
在这里插入图片描述

转载地址:http://jbkgn.baihongyu.com/

你可能感兴趣的文章
合理利用HTML标记优化网页布局
查看>>
pb连接oracle问题
查看>>
.NET环境下水晶报表使用总结
查看>>
SQL Server 2000中查询表名
查看>>
查看 SQL Server 2000 数据表的大小并不难
查看>>
PHP命名大小写敏感规则
查看>>
php输出日志
查看>>
php输出日志
查看>>
一次springmvc+mybatis+log4j日志不输出SQL语句问题的排查经历
查看>>
关于ThreadLocal的浅谈
查看>>
java发邮件eclipse中测试没问题,部署到tomcat上收到的是乱码问题排查
查看>>
nginx配置https之后,https请求被调转到http问题
查看>>
PageHelper的简单追踪
查看>>
根据参数值的不同,调用不同实现类
查看>>
1、Annotation
查看>>
2、Annotation的实现
查看>>
CyclicBarrier && CountDownLatch
查看>>
java.lang.Object
查看>>
mqtt的messageId是怎么回事
查看>>
记一次线上CPU持续飙升的问题排查
查看>>