Я хочу перенаправить свой трафик пользовательского 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
Либо удалите порт из 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