web-dev-qa-db-ja.com

haproxyがカスタムHTTPトラフィックをカスタムhttpsポートにリダイレクトする

トラフィックを受信するポートに基づいて、カスタムhttpポートトラフィックをカスタムhttpsポートにリダイレクトしたい

複数のbindステートメントがあります:

 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

5
UtkarshK

redirectまたはreplace-valueからポートを削除します

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

OR

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