我已将 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