HAProxy的高级配置选项-ACL篇之域名重定向案例

简介: 这篇文章介绍了HAProxy的ACL(访问控制列表)功能,特别是如何基于域名进行重定向的高级配置选项,并通过实战案例展示了如何配置ACL规则以实现基于特定域名的HTTP重定向。

作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.安装Apache Httpd及准备测试数据

1>.试验架构说明

  node102.yinzhengjie.org.cn:
    Haproxy服务器

  node105.yinzhengjie.org.cn:
    测试服务器,模拟客户端

  node106.yinzhengjie.org.cn:
    Apache httpd服务器

  node107.yinzhengjie.org.cn:
    Apache httpd服务器

  node108.yinzhengjie.org.cn:
    Apache httpd服务器

2>.安装Apache httpd服务

  此过程相对简单,我这里就直接略过了,可参考我之前的笔记:https://www.cnblogs.com/yinzhengjie/p/12114195.html

二.域名重定向实战**案例**

1>.编辑haproxy的配置文件

[root@node102.yinzhengjie.org.cn ~]# cat /etc/haproxy/haproxy.cfg
global
    maxconn 100000
    chroot /yinzhengjie/softwares/haproxy
    stats socket /yinzhengjie/softwares/haproxy/haproxy.sock mode 600 level admin
    user haproxy
    group haproxy
    daemon
    nbproc 2
    cpu-map 1 0
    cpu-map 2 1
    nbthread 2
    pidfile /yinzhengjie/softwares/haproxy/haproxy.pid
    log 127.0.0.1 local5 info

defaults
    option http-keep-alive
    option  forwardfor
    option redispatch
    option abortonclose
    maxconn 100000
    mode http
    timeout connect 300000ms
    timeout client  300000ms
    timeout server  300000ms

listen status_page
    bind 172.30.1.102:8888
    stats enable
    stats uri /haproxy-status
    stats auth    admin:yinzhengjie
    stats realm "Welcome to the haproxy load balancer status page of YinZhengjie"
    stats hide-version
    stats admin if TRUE
    stats refresh 5s

frontend WEB_PORT_80
    bind 172.30.1.102:80
    mode http
    #定义ACL,匹配客户端请求的主机名
 acl my_pc_page hdr_dom(host) -i pc.yinzhengjie.org.cn
    #定义ACL,匹配客户端浏览器的类型
    acl firefox_agent hdr(User-Agent) -m sub -i "Firefox"
    #调用ACL,如果客户端请求的主机名是"pc.yinzhengjie.org.cn"则请求的资源会被重定向到博客园,和nginx的rewrite功能很像。
    redirect prefix https://www.cnblogs.com/yinzhengjie/ if my_pc_page
    #调用ACL,如果使用火狐浏览器,则调度到firefox_web进行处理
    use_backend firefox_web if firefox_agent
    #如果前面的ACL都没有匹配成功就访问默认的ACL
    default_backend backup_web

backend firefox_web
    server web01 172.30.1.106:80  check inter 3000 fall 3 rise 5
    server web02 172.30.1.107:80  check inter 3000 fall 3 rise 5

backend backup_web
    server web03 172.30.1.108:80  check inter 3000 fall 3 rise 5 
[root@node102.yinzhengjie.org.cn ~]# 
[root@node102.yinzhengjie.org.cn ~]# systemctl restart haproxy
[root@node102.yinzhengjie.org.cn ~]#

2>.**编辑window客户端的本地文件解析记录,如下图所示。**

3>.任意浏览器访问"http://pc.yinzhengjie.org.cn/"

4>.使用火狐浏览器访问"http://node102.yinzhengjie.org.cn/"

5>.使用IE浏览器访问"http://node102.yinzhengjie.org.cn/"

6>.使用curl模拟各种浏览器访问"http://node102.yinzhengjie.org.cn/"

目录
相关文章
|
域名解析 应用服务中间件 Shell
使用nps配置内网穿透加域名解析
使用nps配置内网穿透加域名解析
1185 77
|
网络协议
【Azure App Service】App Service 如何配置私网域名以及证书呢?
本文解答了关于 Azure App Service 如何配置私网域名及证书的问题。App Service 不支持私网域名,自定义域名需配置在公共 DNS 服务器上。文章引用官方文档详细说明了映射自定义 DNS 的步骤,并附带参考资料链接,帮助用户深入了解相关配置方法。
327 6
|
域名解析 监控 网络协议
slb配置域名注意事项
slb配置域名注意事项
361 11
|
域名解析 监控 安全
slb配置检查域名说明注意事项
slb配置检查域名说明注意事项
334 5
|
负载均衡 安全 网络安全
slb配置健康检查域名
slb配置健康检查域名
317 4
|
负载均衡 应用服务中间件
slb何时需要配置健康检查域名
slb何时需要配置健康检查域名
265 3
|
8月前
|
弹性计算 安全 数据安全/隐私保护
2025年阿里云域名备案流程(新手图文详细流程)
本文图文详解阿里云账号注册、服务器租赁、域名购买及备案全流程,涵盖企业实名认证、信息模板创建、域名备案提交与管局审核等关键步骤,助您快速完成网站上线前的准备工作。
3737 84
2025年阿里云域名备案流程(新手图文详细流程)
域名注册流程和费用:2025最新阿里云域名购买、信息模板实名认证教程
本文详细介绍2025年最新阿里云域名注册流程、费用、实名认证及优惠口令使用方法,涵盖域名查询、信息模板创建、价格说明与注册步骤,适合新手快速掌握域名注册全流程。
2025年阿里云域名备案流程(图文详细教程)
本文详细介绍了2025年阿里云域名备案的全流程,包括注册阿里云账号、企业实名认证、购买服务器、创建域名信息模板、购买域名、域名备案及查询备案号等步骤。通过图文结合的方式,清晰展示了每个环节的操作方法和注意事项,帮助用户顺利完成域名备案。文章强调了域名备案的前提是国内需有一台服务器,并提供了具体配置建议,同时提醒用户注意邮箱验证和短信核验等关键步骤,确保备案顺利通过。
14775 15
|
8月前
|
监控 安全 网络协议
阿里云CDN域名怎么迁移到另一个账号?
阿里云CDN域名支持跨账号迁移,需确保原账号与目标账号均无欠费,且具备相应权限。仅支持单个迁移,需提前处理证书、回源鉴权及监控日志配置,避免业务中断。通过DNS或文件验证完成归属校验后,即可在控制台操作迁入。