使用 HAProxy 作为 https 正向代理和 SSL 终止

使用 HAProxy 作为 https 正向代理和 SSL 终止

我正在尝试做这样的事情:

  • 客户端向 HAProxy 发送 HTTP 请求。
  • HAProxy 执行 TLS 操作,将请求转换为 https 并转发到服务器。HTTP 到客户端。
  • 服务器向 HAProxy 发送 https 响应,然后将响应作为 HTTP 转发给客户端。

目前,我不太确定如何使用 HAProxy 实现该目标。我尝试在自定义端口上创建前端监听,然后转发到后端服务器。这是我的 HAProxy 配置:

frontend manager_https
    bind *:8443
    mode tcp
    log global
    maxconn 2000
    timeout client 50000
    default_backend     https_be

backend https_be
    timeout connect         5000
    timeout server          50000
    retries                 3
    server                  rtmp-manager 127.0.0.1:12345 check-ssl verify none

不幸的是,这不起作用。当客户端发送 HTTP 请求时,HAProxy 也会将 HTTP 请求转发到后端服务器,而不是 HTTPS。我该如何更改配置以使其按预期工作?

另一个问题:有没有办法让使用 HAProxy 的客户端透明地卸载?

我将非常感激您的帮助!

答案1

ssl在后端服务器的定义中指定指令,如下所示:

 server                  rtmp-manager 127.0.0.1:12345 check-ssl ssl verify none

请注意,该check-ssl选项仅影响健康检查,如果ssl指定,则可以省略,因为健康检查是通过 SSL 自动完成的。

HAProxy 应该充当透明的反向代理,因此客户端不应该识别请求实际上是由后端服务器处理的。

相关内容