2016-06-27 10 views
0

私のパブリック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; 
} 

、私は次のような結果を得る:

nginxがHTTPSトラフィックをパブリックドメインにリダイレクトしないのはなぜですか? server_nameはURLマッチング処理で使用されていませんか?

答えて

1

デフォルトのサーバーはポート443で設定されていませんので、nginxのはserver_name public.domain.com;

使用listen 443 ssl default_serverで最初に定義されたホストをとり、また、あなたは、この設定が機能するためにあなたのリダイレクトサーバのためのワイルドカード証明書(自己が必要ホストが一致しない場合、クライアントは警告を表示します)

https://serverfault.com/questions/578648/properly-setting-up-a-default-nginx-server-for-https

関連する問題