Haproxy

終止 SSL 的 HAProxy 還將 SSL 發送到後端伺服器

  • August 20, 2020

我想在 HAProxy 處終止 SSL,對標頭進行一些操作,重寫 URL 並重新加密流量並作為 SSL 發送到後端伺服器?

我似乎找不到辦法做到這一點。我可以完成正常的 SSL 終止,並將純 HTTP 請求發送到後端。但我需要將 SSL 發送到後端。

我想擁有以下功能:

  • 提取 x-forwarded-for 標頭,以獲取代理後面的真實客戶端 IP。
  • 使用 cookie 實現會話粘性。
  • 做一些 URL 重寫。
  • 使用基於 cookie 的會話粘性將 SSL 流量發送到後端。

除非我在 haproxy 端終止 SSL,否則我無法完成 URL 重寫。

這裡的好人的任何幫助將不勝感激。

在 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

引用自:https://serverfault.com/questions/738045