web-dev-qa-db-ja.com

複数のSSLポートでhaproxyを構成する必要があります

同じ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をリダイレクトするにはどうすればよいですか。

2
parag bharne

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ヘッダーを正しいポートに置き換えます...

3
Lutz Reinhardt