私のパブリックEC2インスタンスのリバースプロキシとしてnginxを使用しています。私が持っている:nginx IPアドレスを使用するとHTTPSリダイレクトが発生しません
- 素敵な、きれいなパブリックドメイン
- AWS生成パブリックドメイン(* .compute-1.amazonaws.com)
- AWS生成パブリックIPアドレス
すべてのトラフィックをHTTPS経由でパブリックドメインに移動したいと考えています。私は、アプリケーションにルーティングするように設定された「プライマリ」サーバーブロックを作成し、他のすべてのトラフィックをキャッチしてhttps://public.domain.comにリダイレクトする2つのセカンダリサーバーブロックを作成することでこれを試みました。これは私の設定は次のようになります。このテストでは
# "Primary" block
server {
listen 443 ssl;
server_name public.domain.com;
location/{
proxy_pass http://127.0.0.1:8080;
}
# Other config; SSL config
}
# Catch-all redirects
server {
listen 80;
return 301 https://public.domain.com$request_uri;
}
server {
listen 443;
return 301 https://public.domain.com$request_uri;
}
、私は次のような結果を得る:
- http://public.domain.com >>https://public.domain.com(正しい)
- http://2308.compute-1.amazonaws.com >>https://public.domain.com(正しい) を
- http s://2308.compute-1.amazonaws.com >>リダイレクトしない(誤って)
- http://55.255.255.255 >>https://public.domain.com(正しい)
- HTTP の://55.255.255.255は>>ありませんリダイレクト(WRONG!)
nginxがHTTPSトラフィックをパブリックドメインにリダイレクトしないのはなぜですか? server_name
はURLマッチング処理で使用されていませんか?