我正在尝试做这样的事情:
- 客户端向 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 应该充当透明的反向代理,因此客户端不应该识别请求实际上是由后端服务器处理的。