HAproxy 对请求基本身份验证的站点进行 http 检查

HAproxy 对请求基本身份验证的站点进行 http 检查

HAproxy 应该httpchk针对需要通过基本身份验证进行身份验证的页面使用。

backend backendname
    option httpchk
    http-check send meth GET uri /check/path/ ver HTTP/1.1 hdr Authorization 'Basic [base64 of the credentials]'
    http-check expect status 200

    server [server1-name] [server1-IP:PORT] check inter 10s rise 2 fall 1 maxconn 4
    server [server2-name] [server2-IP:PORT] check inter 10s rise 2 fall 1 maxconn 4

HAproxy 没有得到正确的响应,服务器不可用。

除 http-check 部分之外的 HAproxy 配置(服务器名称、IP、端口等)很可能不是问题,因为 HAproxy 之前曾使用该设置。

在服务器 1 和服务器 2 上测试curl http://localhost:PORT --header "Authorization: Basic [base64 of the credentials]"得到 200 响应。

针对记录所有收到的请求的标头的脚本运行相同的 HAproxy 配置,会显示上述 curl 调用或 HAproxy 完全相同的标头。

答案1

echo -n "my_username:my_password" | base64

http-check send meth GET uri /api/v1/status ver HTTP/1.0 hdr Authorization  'Basic base64ofthecredentials'

对我来说效果很好。

haproxy -v
HAProxy version 2.6.7-c55bfdb 2022/12/02 - https://haproxy.org/
Status: long-term supported branch - will stop receiving fixes around Q2 2027.
Known bugs: http://www.haproxy.org/bugs/bugs-2.6.7.html
Running on: Linux 4.14.238-182.422.amzn2.x86_64 #1 SMP Tue Jul 20 20:35:54 UTC 2021 x86_64```

相关内容