🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Capistrano

Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

Circle CI

Circle CIは、クラウド上に簡単にCI環境を構築できるWebサービスです。GitHubと連携させ、CIしたいリポジトリーを選択しビルド・テストを行います。チャット等を利用して結果を確認することが可能です。

Q&A

解決済

1回答

3149閲覧

AWSデプロイ Health checks failed with these codes: [302] を解消したい。

a-ichi

総合スコア16

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Capistrano

Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

Circle CI

Circle CIは、クラウド上に簡単にCI環境を構築できるWebサービスです。GitHubと連携させ、CIしたいリポジトリーを選択しビルド・テストを行います。チャット等を利用して結果を確認することが可能です。

0グッド

0クリップ

投稿2021/01/27 05:18

前提・実現したいこと

capistranoでAWSデプロイがをすると、
capistranoはデプロイ成功しているのですが、
AWSのヘルスチェックで
Health checks failed with these codes: [302]
が出てしまい、
httpsのwebサイトが表示されません。

http://xx.xx.xx.xx
ではwebサイト問題なく表示されます。

発生している問題・エラーメッセージ

Health checks failed with these codes: [302] 

該当のソースコード

controller

ruby

1def index 2 unless user_signed_in? 3 redirect_to new_user_session_path 4 end 5 @events = Event.all 6 @customer = Customer.all 7 end

nginxのdockerfile

dockerfile

1FROM nginx:1.18.0 2 3RUN rm -f /etc/nginx/conf.d/* 4 5COPY nginx.conf /etc/nginx/conf.d/アプリ名.conf 6 7CMD /usr/sbin/nginx -g 'daemon off;' -c /etc/nginx/nginx.conf

nginx.conf

conf

1upstream アプリ名 { 2 server unix:///アプリ名/tmp/sockets/puma.sock; 3} 4 5server { 6 listen 80; 7 server_name アプリ名.com; 8 9 access_log /var/log/nginx/access.log; 10 error_log /var/log/nginx/error.log; 11 12 root /アプリ名/public; 13 14 client_max_body_size 100m; 15 error_page 404 /404.html; 16 error_page 505 502 503 504 /500.html; 17 try_files $uri/index.html $uri @アプリ名; 18 keepalive_timeout 5; 19 20 location @アプリ名 { 21 proxy_set_header X-Real-IP $remote_addr; 22 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 23 proxy_set_header Host $http_host; 24 proxy_pass http://アプリ名; 25 } 26} 27

試したこと

・ sudo systemctl reload nginx
・ sudo systemctl restart nginx
・nginx.confに
if ($http_x_forwarded_proto != https) {
return 301 https://$host$request_uri;
}を追加

参考にした記事
https://qiita.com/ameyamashiro/items/63793a02d66b6c48ec09

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。


リダイレクトが原因起きているエラーという事のようですが、
意味が良く分かりません。
http→httpsのリダイレクトという事でしょうか?
アプリで未ログインの場合、トップページではなく、ログインページに遷移する
という事が問題なのでしょうか?

初学者でよく分かっていません。
どなたか教えて頂ければ幸いです。
宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

同じような質問に答えたばかりだと思いますが、同じ現象ではないのでしょうか…。
AWSデプロイ Health checks failed with these codes: [302] を解消したい。
301ではなく302なのでhttp→httpsのリダイレクトである可能性は低いのと、nginxでそんな設定をしていないのでそれは違うでしょう。

アプリで未ログインの場合、トップページではなく、ログインページに遷移する

ログインページ以外のパスにアクセスした時にログインページに遷移させるところでリダイレクトさせてるんじゃないでしょうか?
(そこをどうやって実装しているかはこちらではわかりかねるので、想像です。)
先の回答にも書きましたが、わからなければF12の開発者ツールなんかでレスポンスコードを調べてみてください。

これも想像に基づくものなので的確かわかりませんが、それであればログインページのパスはリダイレクトさせてないとお思われるので、ヘルスチェックのリクエストを送るパスをログインページのパスにすればいいんじゃないでしょうか。

一応ヘルスチェックを302でもOKにするように設定することもできますが、それはヘルスチェックの基準を変えているだけなのでおすすめはしません。

投稿2021/01/27 17:14

yu_1985

総合スコア7588

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

a-ichi

2021/01/28 02:37

yu_1985様 いつもありがとうございます。 前回の質問の時は、違うエラーが多発しまして、 解決出来なかったので再度質問させて頂きました。 ヘルスチェックはパスをログインページのパスに変えるとhealthyになりました。ありがとうございます。 ただ、相変わらず、ドメインではログインが出来ません。 これは別の問題という事でしょうか?
yu_1985

2021/01/28 02:56

> 相変わらず、ドメインではログインが出来ません。 どこかに書いてましたっけ? 少なくともこの質問の問題は解消されたので別の問題でしょう。
a-ichi

2021/01/28 06:35

httpsのwebサイトが表示されません。 と記載しています。 別の質問であげてみます。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問