![haproxy 将自定义 http 流量重定向到自定义 https 端口](https://linux22.com/image/720855/haproxy%20%E5%B0%86%E8%87%AA%E5%AE%9A%E4%B9%89%20http%20%E6%B5%81%E9%87%8F%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%E8%87%AA%E5%AE%9A%E4%B9%89%20https%20%E7%AB%AF%E5%8F%A3.png)
我希望根据我接收流量的端口将我的自定义 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
我尝试过的:
acl is7777 dst_port 7777
http-request redirect code 301 https://%[req.hdr(Host)]:9999%[capture.req.uri] if is7777
然而,当我查看 Chrome 开发工具中的日志时,我总是看到 req.hdr(Host) 的值保留了旧端口的值,所以我被重定向到
https://1.2.3.4:7777/:9999/.
我如何获取域名并将其重定向到所需的目标端口 9999
还有这样的事情:
http-request replace-value Host (.*):7777 \1:9999
由于稍后会有多次重定向,因此会中断应用程序流程。我需要从 7777(http) 转到 9999(https)。haproxy 版本:1.5
答案1
redirect
从或中删除端口replace-value
http-request replace-value Host (.*):7777 \1
http-request redirect location https://%[req.hdr(Host)]:9999%[capture.req.uri] if is7777
或者
http-request replace-value Host (.*):7777 \1:9999
http-request redirect location https://%[req.hdr(Host)]%[capture.req.uri] if is7777