HAproxy 不转发 .asmx 请求

HAproxy 不转发 .asmx 请求

我正在尝试使用 HAproxy 将旧的 ASP 请求重定向到我们的 ASP 服务器,如下所示:

global
    log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4096
    user        haproxy
    group       haproxy
    daemon
    nbproc      2

defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 4096

frontend  main 0.0.0.0:80
    acl url_legacy  path_beg        -i /wsMMC
    acl url_legacy  path_end        -i .asmx
    acl url_static  path_beg        -i /public
    acl url_static  path_end        -i .jpg .jpeg .png .gif .ico .css .zip .tgz .gz .rar .bz2 .pdf .txt .tar .wav .bmp .rtf .flv .swf .html .htm .apk .jad
    use_backend static      if url_static
    use_backend legacy      if url_legacy
    default_backend www

backend www
    balance roundrobin
    server app1 10.100.46.3:3001 check
    server app2 10.100.46.4:3001 check

backend static
    balance roundrobin
    server app1 10.100.46.3:80 check
    server app2 10.100.46.4:80 check

backend legacy
    server legacy www.legacy.com:80 check

但是我收到的服务器响应是 404 - 资源未找到。直接访问 www.legacy.com/ws/derp.asmx 会返回正确的异常代码(因为我使用的是 GET 而不是 POST)。有什么建议吗?

我尝试替换以 /images 开头的路径和以 .png 结尾的路径,然后我就可以毫无问题地检索我们的徽标文件。

远程服务器(legacy.com)是一台 IIS7 Windows 机器。

答案1

IIS 服务器必须绑定到与代理使用的域相同的域。在我的示例中,HAproxy 绑定到 test.domain.com,而 IIS 仅监听 domain.com。将 test.domain.com 添加到名称列表后,IIS 应该接受转发并开始工作。

相关内容