1

私の目標は、ポート 80 から 443 にリダイレクトする (https を強制する) ことですが、最初に有効な https 構成を取得することができません。503 サーバー エラーが発生し、ログに何も表示されません。SO と SF に関するすべての投稿を見てきましたが、どれも機能しませんでした (X_FORWARDED_PROTO、X-Forwarded-For ヘッダーは違いはありません)。ロードバランサーの背後にある EC2 を使用しているため、ELB で証明書を既に構成しているため、SSL 関連のディレクティブを使用する必要はありません。Web サーバーに Tornado を使用しています。

これが設定です。誰かアイデアがあれば、ありがとう!

http {
    # Tornado server
    upstream frontends {
        server 127.0.0.1:8002;
    }

server {
    listen 443;

    client_max_body_size 50M;

    root <redacted>/static;

    location ^~/static/ {
        root <redacted>/current;
        if ($query_string) {
            expires max;
        }
    }

    location / {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://frontends;
    }
}
}
4

1 に答える 1

6

さて、2 つの異なるタスクがあります。

すべての http トラフィックを https にリダイレクトする必要がある場合は、nginx で http サーバーを作成する必要があります。

    server {
      listen 80; 
      server_name example.com;
      return       301 https://example.com$request_uri;
    }

2 つ目の注意点として、SSL が ELB で終了している場合は、ssl 対応の nginx サーバーはまったく必要ありません。ELB からサーバーの 80 ポートにトラフィックを渡すだけです。

于 2012-11-27T10:07:30.217 に答える