【问题标题】:HAProxy ACL - Backend resolutionHAProxy ACL - 后端解析
【发布时间】:2019-06-03 02:22:16
【问题描述】:

鉴于此 HAProxy 配置:

    acl acl-api-qa hdr(host) -i qa.example.com
      use_backend backend-api-qa if acl-api-qa
    backend backend-api-qa
      mode http
      balance leastconn
      server-template api 10 _api._env=qa.service.consul resolvers consul resolve-prefer ipv4 check


    acl acl-api-test hdr(host) -i test.example.com
      use_backend backend-api-test if acl-api-test
    backend backend-api-test
      mode http
      balance leastconn
      server-template api 10 _api._env=test.service.consul resolvers consul resolve-prefer ipv4 check

流量仅被路由到 qa.example.com 但 test.example.com 是 503:服务不可用,因为 HAProxy 在遇到第一个后端时似乎短路并忽略了下一组 ACL 和后端。这是订购问题吗?我可以不交织 ACL 和后端吗?是否应该将它们构建为 ACL 部分,然后是后端部分?

【问题讨论】:

    标签: haproxy


    【解决方案1】:

    好像是这样?这对我有用:

        acl acl-api-test hdr(host) -i test.example.com
        acl acl-api-qa hdr(host) -i qa.example.com
    
    
        use_backend backend-api-test if acl-api-test
        use_backend backend-api-qa if acl-api-qa
    
    
        backend backend-api-test
          mode http
          balance leastconn
          server-template api 10 _api._env=test.service.consul resolvers consul resolve-prefer ipv4 check
    
        backend backend-api-qa
          mode http
          balance leastconn
          server-template api 10 _api._env=qa.service.consul resolvers consul resolve-prefer ipv4 check
    

    但是在我的 consul 模板中导致了相当多的重复代码。 HAProxy 是否希望将 acluse-backendbackend 分为不同的组?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-30
      • 1970-01-01
      相关资源
      最近更新 更多