使用 HAproxy 作为 LB,网站始终无法访问

使用 HAproxy 作为 LB,网站始终无法访问

由于无法使用 ELB,我正在 AWS 环境中设置 HAproxy LB。这是迫使我选择 HAproxy 路线的要求:一台服务器上将运行多个网站。网站需要通过 https 运行。网站代码需要 https 连接才能访问它。如果 http 代码到达它,它会重定向。所以我必须将每个网站绑定到一个唯一的 IP 并在那里进行 SSL 终止。

这就是我现在正在做的事情:

2 个子网:

HAproxy 子网是公共的,而 Webserver 子网是私有的

来自 Web 服务器的所有流量都被路由到运行 HAproxy 的实例。为了进行测试,我刚刚向 HAproxy 添加了一个站点。我首先在 HAproxy 上终止连接,解密它,读取主机值,然后根据该值将其重定向到该网站通过 https 在 Web 服务器上映射的 IP。这是现有配置:

frontend https_traffic
        bind            10.100.210.229:443 ssl crt /ssl/converted.pem
        log             global
        option          tcplog
        option          dontlognull
        timeout client  30s
        use_backend     secure_traffic1 if { hdr(host) -i work.xyzsite.net }


backend secure_traffic1
        balance roundrobin
        retries         2
        stick-table type binary len 32 size 30k expire 30m
        stick on ssl_fc_session_id
        timeout connect 5s
        timeout server  5s
        option ssl-hello-chk
        server          web1 10.100.10.16:443 ssl verify none

当我打开 URL 时,大多数时候我的浏览器中都会出现“ERR_EMPTY_RESPONSE”,而其他时候网站加载正常。我将 haproxy 日志级别设置为调试,但在日志中没有看到任何错误。

请帮忙。

答案1

我建议先验证您的证书。您可以对每个网站进行 curl 来验证证书是否按预期工作吗?

以下是一个运行的示例:

`curl --url 'https://yoursite.com/index.php' -v --cacert ./ca.pem`

输出将验证正在进行的连接和证书。

相关内容