У меня есть внутренний балансировщик нагрузки (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