使用 HAProxy 选择性重定向到 HTTPS

使用 HAProxy 选择性重定向到 HTTPS

我已将 HAProxy 配置为一个前端,该前端可同时接受 HTTP 和 HTTPS 连接。所有后端都仅支持 HTTP。

我想强制某些路径使用 HTTPS(/Login 等),以便 HAProxy 在收到 HTTP 请求时返回这些路径的重定向。

答案1

我选择了以下方法,对我来说效果很好:

frontend yadayada
  ...
  acl Secure dst_port 443
  acl Login path_beg /login
  redirect scheme https code 301 if Login !Secure

答案2

对于以 /Login 结尾的 URI,path_end 可能最合适:

https://stackoverflow.com/questions/20606544/haproxy-url-based-routing-with-load-balancing

您的配置将如下所示(不完整,仅供参考)。

frontend http
acl secure path_end -i /Login #matches path ending with "/Login"

use_backend secure_server    if secure

backend secure_server
   redirect scheme https if ! secure

相关内容