gpt4 book ai didi

SSL over HAProxy 问题

转载 作者:太空宇宙 更新时间:2023-11-03 12:53:24 26 4
gpt4 key购买 nike

我正在尝试在 HAProxy 负载平衡器后面放置一个 HTTPS 网络服务器。HTTPS 服务器在端口 8000 上的 Node.js 上运行,拥有所有正确的 SSL 证书和 key ,如果我尝试通过 URL 直接访问它,例如https://ssltest.mydomain.com:8000/。我还可以使用 openssl s_client -connect ssltest.mydomain.com:8000 检查 SSL 连接,它显示的数据似乎是正确的。

此 HTTPS 服务器的前端是另一个子域,例如app.mydomain.com 并在默认 SSL 端口 443 上运行。

但是,当我尝试从浏览器访问 https://app.mydomain.com 时,出现 SSL 错误。上面的命令行检查也失败了:openssl s_client -connect app.mydomain.com:443 -state -debug

下面是我的 HA 代理配置的样子:

global
log /dev/log local0 info
log /dev/log local0 notice
maxconn 20000
user haproxy
group haproxy
daemon
spread-checks 5

defaults
log global
mode tcp
option dontlognull
retries 3
option redispatch
timeout connect 30s
timeout client 30s
timeout server 30s
timeout check 5s
balance roundrobin

frontend https_proxy
bind :443
acl is_app hdr_dom(host) -i app.mydomain.com
acl is_rest hdr_dom(host) -i rest.mydomain.com
acl is_io hdr_dom(host) -i io.mydomain.com
use_backend core_https if is_app
use_backend core_rest_api if is_rest
use_backend core_www_io if is_io

backend core_https
server www1 10.0.0.174:8000 maxconn 25 check inter 5s rise 18 fall 2

backend core_www_io
server io1 10.0.0.174:8100 maxconn 25 check inter 5s rise 18 fall 2

backend core_rest_api
server api1 10.0.0.174:8200 maxconn 25 check inter 5s rise 18 fall 2

我不明白为什么这不能通过 HAProxy 工作,而是直接工作,我非常感谢您的建议。

最佳答案

您混淆了第 4 层和第 7 层负载平衡。要使用 hdr_dom 分隔请求,您需要仅适用于 HTTP 的第 7 层,您可能猜到 HTTPS 在第 4 层上工作。

因此,由于 haproxy 无法检查主机,您的 ifs 都没有返回 true 并且没有选择后端,要解决这个问题,您应该添加一个 default_backend 条目。

frontend https_proxy
bind :443
acl is_app hdr_dom(host) -i app.mydomain.com
acl is_rest hdr_dom(host) -i rest.mydomain.com
acl is_io hdr_dom(host) -i io.mydomain.com
use_backend core_https if is_app
use_backend core_rest_api if is_rest
use_backend core_www_io if is_io
default_backend core_https

关于SSL over HAProxy 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20503831/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com