同じURLのサーバーが2つありますが、ポート番号が変わる可能性があります。
これらの2つのURLをHTTPSにリダイレクトしたいと思います。
最初のURL(http://example.com
)を入力すると、https://example.com
にリダイレクトされます。
2番目のURL(http://example.com:8080
)を入力した場合、https://example.com:8080
にリダイレクトする必要があります。
私の構成を参照してください:
frontend www-HTTP
bind *:80
bind *:443 ssl crt /etc/Apache2/ssl/Apache.pem
reqadd X-Forwarded-Proto:\ https
default_backend tcp-backend
mode tcp
frontend TCP-HTTP
bind *:8080
bind *:8443 ssl crt /etc/Apache2/ssl/paritech.pem
reqadd X-Forwarded-Proto:\ https
default_backend www-backend
mode tcp
backend www-backend
redirect scheme https if !{ ssl_fc }
server dev.example.com 192.168.1.120:8080 check
backend TCP-backend
redirect scheme https if !{ ssl_fc }
server qa.example.com 192.168.1.120:80 check
HTTPS用に8443経由で8080をリダイレクトするにはどうすればよいですか。
redirect scheme
のドキュメントには、
「リダイレクトスキーム」では、「Location」ヘッダーは「://」、最初に出現する「Host」ヘッダー、次にクエリ文字列を含むURIパスと連結することによって構築されます。
問題があります:Host
ヘッダーを使用していて、8080
...があります.
考えられる解決策は次のとおりです。
http-request replace-header Host ^(.*?)(:[0-9]+)?$ \1:8443
http-request redirect scheme https if !{ ssl_fc }
Host
ヘッダーを正しいポートに置き換えます...