haproxy 将自定义 http 流量重定向到自定义 https 端口

Utk*_*shK 5 ssl https redirection haproxy

我希望根据我接收流量的端口将我的自定义 http 端口流量重定向到自定义 https 端口

我有多个绑定语句:

 bind 1.2.3.4:7777
 bind 1.2.3.4:8888
 bind 1.2.3.4:9999 ssl crt /etc/haporxy/somecert.crt
Run Code Online (Sandbox Code Playgroud)

我试过的:

acl is7777 dst_port 7777
http-request redirect code 301 https://%[req.hdr(Host)]:9999%[capture.req.uri] if is7777
Run Code Online (Sandbox Code Playgroud)

但是,当我查看 Chrome 开发工具中的日志时,我总是看到 req.hdr(Host) 的值保留了旧端口的值,因此我被重定向到

 https://1.2.3.4:7777/:9999/.
Run Code Online (Sandbox Code Playgroud)

如何仅获取域名并将其重定向到所需的目标端口 9999

此外,像这样的事情:

http-request replace-value Host (.*):7777 \1:9999
Run Code Online (Sandbox Code Playgroud)

由于稍后有多个重定向,因此中断了应用程序流程。我需要从 7777(http) 转到 9999(https) 。haproxy 版本:1.5

小智 4

删除端口redirectreplace-value

http-request replace-value Host (.*):7777 \1
http-request redirect location https://%[req.hdr(Host)]:9999%[capture.req.uri] if is7777
Run Code Online (Sandbox Code Playgroud)

或者

http-request replace-value Host (.*):7777 \1:9999
http-request redirect location https://%[req.hdr(Host)]%[capture.req.uri] if is7777
Run Code Online (Sandbox Code Playgroud)