热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

haproxy定义规则

常用的acl匹配条件    -i:不区分中模式字符的大小写;    -f:从指定的文件中加载模式;   &n

常用的acl匹配条件

    -i:不区分中模式字符的大小写;
    -f:从指定的文件中加载模式;    

    path_beg:用于测试请求的URL是否以指定的模式开头
        例:匹配url以/static、/p_w_picpaths、/Javascript /stylesheets开头
        acl url_static  path_beg  -i  /static /p_w_picpaths /Javascript /stylesheets
    path_end:用于测试请求的URL是否以指定的模式结尾
        例:匹配url以jpg、gif、png、css、js结尾
        acl url_static  path_end -i .jpg .gif .png .css .js
    hdr_beg:用于测试请求报文的指定首部的开头部分是否符合指定的模式
        例:匹配请求的主机以img、video、download或ftp开头
        acl host_static hdr_beg(host) -i img. video. download. ftp.
        即匹配访问的域名是img.baidu.com,video.baidu.com,download.baidu.com,ftp.baidu.com
    url_beg:匹配的是整个url
        例:匹配url为http://www.51yunv.com
        acl is_51yunv url_beg http://www.51yunv.com
        use_backend 51yunv if is_51yunv
    dst_port:判断请求的端口

    hdr_sub:判断客户的user-agent

        例:判断客户端的user-agent是否为手机

        acl shouji hdr_sub(user-agent) -i android iphone

定义分发规则:

    根据请求的主机头,实现不同项目的请求,分发到不同的backend

    hdr_beg(host):判断主机头

    

    acl is_www hdr_beg(host) -i www.51yunv.com

    acl is_wap hdr_beg(host) -i wap.51yunv.com

    acl is_erp hdr_beg(host) -i erp.51yunv.com

    acl is_interface hdr_beg(host) -i interface.51yunv.com

    use_backend tomcat_erp_v2 if is_erp

    use_backend tomcat_interface_v2 if is_interface

    use_backend tomcat_web_v2 if is_www

    use_backend tomcat_mobile_v2 if is_wap

    

    通过定义以上规则即可实现访问不同的域名分发到不同的backend

定义重定向规则:

    prefix:表示重定向url
    location:表示重定向访问路径,即url不变,url后边跟的路径发生改变


    redirect prefix http://weihu.51yunv.com/PC if is_www

    redirect prefix http://weihu.51yunv.com/H5 if is_wap

    说明:

        当访问is_www时,重定向到weihu.51yunv.com/PC

        当访问is_wap时,重定向到weihu.51yunv.com/H5

定义放行规则:

    仅放行通过验证的IP地址或者IP范围段;

    例:如果访问的是is_www,但来源IP不是指定的IP时,用http-request deny进行拒绝;

        acl is_www hdr_beg(host) -i www.51yunv.com
        acl is_dns src 116.211.121.0/24 218.65.212.0/24
        http-request deny if is_www  !is_dns(满足条件的直接进行拒绝)  

        也可以写为:

        acl is_www hdr_beg(host) -i www.51yunv.com
        acl is_dns src 116.211.121.0/24 218.65.212.0/24
        user_backend www if is_www  is_dns(两个条件同时满足才使用后端的www)

    说明:

        源地址有多个时,用空格进行隔开

定义手机只能访问手机端,电脑端只能访问电脑端规则:

    当手机访问www.51yunv.com时转发到wap.51yunv.com

    当电脑访问wap.51yunv.com时转发到www.51yunv.com

    acl is_shouji hdr_sub(user-agent) -i android iphone
    acl is_diannao hdr_beg(host) www
    redirect prefix http://wap.51yunv.com if shouji
    redirect prefix http://www.51yunv.com if is_diannao !is_shouji


推荐阅读
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本文详细介绍了cisco路由器IOS损坏时的恢复方法,包括进入ROMMON模式、设置IP地址、子网掩码、默认网关以及使用TFTP服务器传输IOS文件的步骤。 ... [详细]
author-avatar
雨过后放晴
若言琴上有琴声,放在匣中何不鸣?
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有