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

oaz*_*bir 20 haproxy

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

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

我想具有以下功能:

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

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

非常感谢这里的好人的任何帮助。

Tub*_*ess 39

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
Run Code Online (Sandbox Code Playgroud)

  • 惊人的!让我尝试一下。我无法在任何地方找到“server .... ssl”的东西。 (2认同)