Назад | Перейти на главную страницу

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.

Сервер IIS должен быть привязан к тому же домену, что и домен, используемый прокси. В моем примере HAproxy привязан к test.domain.com, в то время как IIS прослушивает только domain.com. После добавления test.domain.com в список имен IIS должен принять пересылку, и она заработала.