HAProxy 终止 SSL 并将 SSL 发送到后端服务器

HAProxy 终止 SSL 并将 SSL 发送到后端服务器

我想在 HAProxy 终止 SSL,对标头进行一些操作,重写 URL 并重新加密流量并以 SSL 的形式发送到后端服务器?

我似乎找不到办法做到这一点。我可以完成常规 SSL 终止,并向后端发送纯 HTTP 请求。但我需要将 SSL 发送到后端。

我希望具有以下功能:

  • 提取 x-forwarded-for 标头,以获取代理后面的真实客户端 IP。
  • 使用 cookie 实现会话粘性。
  • 进行一些 URL 重写。
  • 使用基于 cookie 的会话粘性将 SSL 流量发送到后端。

除非我在 haproxy 端终止 SSL,否则我无法完成 URL 重写。

如果这里任何好心人能提供帮助,我都会非常感激。

答案1

haproxy.cfg 中没有什么特别的操作。您只需在 HAProxy 前端中配置所需的任何 URL 重写和标头操作,然后将流量重定向到 SSL 后端。以下是一个简单的示例:

frontend app1_ssl
    bind *:443 ssl crt /etc/haproxy/certs.d/example.com.crt crt /etc/haproxy/certs.d/ no-sslv3

    option http-server-close
    option forwardfor
    http-request add-header X-Forwarded-Proto https
    http-request add-header X-Forwarded-Port 443
   
    # set HTTP Strict Transport Security (HTST) header
    http-response add-header Strict-Transport-Security max-age=15768000

    # some ACLs and URL rewrites...

    default_backend             backend_app1_ssl


backend backend_app1_ssl
    server mybackendserver 127.0.0.1:4433 ssl verify none

相关内容