Как отключить перенаправления 301 в HAProxy - PullRequest
0 голосов
/ 04 марта 2020

У меня есть внутренний балансировщик нагрузки (HAProxy 2.0.2), который прокси-сервер для моего пула серверов приложений.

Когда я получаю прямой доступ к POST /hello на сервере приложений, он возвращает 404, так как все мои URL должен заканчиваться завершающим sla sh, но если я делаю то же самое с HAProxy POST /hello, мои запросы автоматически маршрутизируются и возвращаются результаты GET /hello/, но в haproxy access.log регистрируется код состояния 301 .

Примечание:

Я должен отключить все варианты автоматического перенаправления HAProxy, ie HAProxy должен запросить сервер, если этот путь существует, иначе вернуть 404. любой Обновление конфигурации было бы очень полезно

Действительные URL-адреса

/ hello /

Ожидаемое поведение HAProxy.

Haproxy должен вернуть 404, если я нажму /hello [без косой черты]

HAProxy Config

global
        log /dev/log len 4096 local0 info
        log /dev/log len 4096 local1 notice
        chroot /var/lib/haproxy
        stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
        stats socket ipv4@0.0.0.0:9999 level admin
        stats timeout 30s
        user haproxy
        group haproxy
        daemon

defaults
        log     global
        mode    http
        option  dontlognull
        option  redispatch
        retries 3
        timeout http-request 50s
        timeout connect 5s
        timeout check 5s
        timeout client  50s
        timeout server  50s

frontend fe_web
   bind *:80
   stats uri /haproxy?stats
   capture request header Host len 64

   acl IS_V2 path_beg /api/v2

   use_backend bk_default_v2 if IS_V2
   default_backend bk_default_app

backend bk_default_app
    mode http
    option                  forwardfor
    option httpchk HEAD /health
    http-check expect status 200
    default-server inter 2s fall 5 rise 2
    balance                 roundrobin
    server app1 app1:9021 check maxconn 20
    server app2 app2:9021 check maxconn 20

backend bk_default_v2
    mode http
    option                  forwardfor
    option httpchk HEAD /health
    http-check expect status 200
    default-server inter 2s fall 5 rise 2
    balance                 roundrobin
    server app1 app1:9021 check maxconn 20
    server app2 app2:9021 check maxconn 20
...