AWSでは、Elastic Load Balancerの背後にあるDockerized Nodeアプリケーションを実行している複数のEC2インスタンスを展開するようにElastic BeanStalkを設定しました。また、SSLを介してhttps経由でサイトを読み込んでAWS証明書マネージャを使用しています。自動的に自動的に私はこれを達成するためにnginxのを使用しようとしていますHTTPS Docker、Node、Nginx Configの問題を伴うAWS EB
へのHTTPリダイレクトwww.domain.com
- 、および:ここで私が達成しようとしているものです私は自動化するように処理したいので、スケーリング規則によってスピンアップされる新しいインスタンスには、この構成が自動的に含まれます。
いくつかの調査の後、私は一部の人がプロジェクトルートの.ebextensions/nginx.configファイルでこれを達成していることがわかりました。
は、ここに私のnginxのオーバーライドの設定ファイルである:
files: /etc/nginx/sites-available/elasticbeanstalk-nginx-docker-proxy.conf: mode: "000644" owner: root group: root content: | map $http_upgrade $connection_upgrade { default "upgrade"; "" ""; } server { listen 80; return 301 https://www.$host$request_uri; } server { listen 443 ssl; gzip on; gzip_comp_level 4; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2})") { set $year $1; set $month $2; set $day $3; set $hour $4; } access_log /var/log/nginx/healthd/application.log.$year-$month-$day-$hour healthd; access_log /var/log/nginx/access.log; location/{ proxy_pass http://docker; proxy_http_version 1.1; proxy_set_header Connection $connection_upgrade; proxy_set_header Upgrade $http_upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
ノードアプリはポート3000上でドッキングウィンドウコンテナ内で実行され、そのポートが露出しています。
4つの質問:
- これは、AWSでこれを行うには正しい方法は何ですか?
- このnginx設定ファイルは正しいですか(wwwとhttpsにリダイレクトするため)?
- ここでNGINX設定で別のSSL証明書が必要ですか?私はAWS Certification Mangerを使用してドメインレベルで1つを持っています
- リダイレクトは健全性をチェックし、自動展開を強制終了しますか?
もちろん、最大の問題はAWSにこの設定を受け入れることができないことです。私は間違って何をしていますか?
感謝。私はすでにAWS証明書マネージャーとルート53を使用しています。私はELBエイリアスへのAレコードを持っています。私のドメインのwww以外のものに対してCNAMEを設定していますが、これは自動リダイレクトではありません。実際にユーザーをリダイレクトするオプションはRoute 53では表示されません。 DNSは正しく解決されていますが、URLは実際には変更されていません。これを行うにはRoute 53の設定オプションがいくつかありますか? –
既にRoute 53を使用している場合は、独自の別名「レコード」を使用してこの問題を解決できます。標準的なDNSでは、これを全く行うことはできず、Webサイトに301リダイレクトを送信させる必要があります。もちろん、301のリダイレクトを送信する必要があります。または、いくつかのリクエストがwwwなしで入力されるという事実を扱う必要があります。 これを行う最も簡単な方法は、裸のドメインの名前を持つS3バケットを設定し、example.comからwww.example.comにリダイレクトするようにバケットプロパティを設定し、Route 53に別名を作成することですそのS3バケットを指し示す裸のドメイン名。 –