【问题标题】:Reverse proxy with haproxy not forwarding host使用 haproxy 的反向代理不转发主机
【发布时间】:2013-04-30 22:23:00
【问题描述】:

我正在尝试配置在一台服务器上运行的 HAproxy,以将请求转发到我在 appfog 上运行的某些应用程序,但它已停止工作。我检查了我的配置,但我无法发现问题。

我怀疑主机信息没有正确转发,因为当我进入 domain1.com 时,我在 appfog 上被路由到 domain1.app.com 但服务器抛出 404。

这是我的配置文件-

global
        maxconn   4096
        user      haproxy
        group     haproxy
        daemon
        log       127.0.0.1 local0  info
        log       127.0.0.1 local1  notice

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        option  originalto
        option  forwardfor
    stats   enable
    stats   auth domain1:xxxxxx
        option  httpclose
        retries 3
        option  redispatch
        maxconn        2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000

backend domain1_at_appfog
        reqirep ^Host:\ domain2.com Host:\ domain2.web.app.com
        server appfog1 domain2.web.app.com:80

backend domain2_at_appfog
        reqirep ^Host:\ domain1.com Host:\ domain1.app.com
        server appfog2 domain1.app.com:80 

backend local_host_site
        server this1 127.0.0.1:8080

frontend superliciousLove *:80
        acl www_domain1 hdr_dom(host)  -i www.domain1.com
    acl local_host url_sub www2
    use_backend domain1_at_appfog if www_domain1
        use_backend local_host_site if local_host
        default_backend   domain1_at_appfog

【问题讨论】:

    标签: reverse-proxy haproxy appfog


    【解决方案1】:

    根据提供的示例,如果准确,那么问题就在这里:

    backend domain1_at_appfog
        reqirep ^Host:\ domain2.com Host:\ domain2.web.app.com
        server appfog1 domain2.web.app.com:80
    

    您的 ACL 正在检查 www.domain1.com,并路由到 backend domain1_at_appfog。但是,您正在替换 domain2.com 而不是 domain1.com,并且 appfog 只看到 domain1.com 而不是重新映射的主机名。

    如果您需要后端支持多个域,您可以更改使用 reqirep 以将所有匹配的主机替换为 appfog 主机:

    backend domain1_at_appfog
        reqirep ^Host: Host:\ domain1.web.app.com
        server appfog1 domain1.web.app.com:80
    
    backend domain2_at_appfog
        reqirep ^Host: Host:\ domain2.app.com
        server appfog2 domain2.app.com:80 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-30
      • 2020-01-02
      • 2015-11-22
      • 2018-03-08
      • 1970-01-01
      • 2016-10-26
      • 2015-03-12
      • 1970-01-01
      相关资源
      最近更新 更多