質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.35%
unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Amazon EC2

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

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

Q&A

0回答

1031閲覧

【AWS/EC2】起動しているけど、アクセスできない…

mokosamejima

総合スコア11

unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Amazon EC2

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

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

0グッド

1クリップ

投稿2021/10/17 04:33

編集2021/10/18 00:06

概要

AWSのEC2内でRailsを起動させています。
手動でのデプロイの設定が終わったので、URLにアクセスするとブラウザで以下の表記が現れます。
http://<Elastic IP>:3000/(<>は検索時に外しています。)

このサイトは安全に接続できません <Elastic IP>から無効な応答が送信されました。 ERR_SSL_PROTOCOL_ERROR

自分で行ったこと

まず、本番環境でRailsを起動していないのかと思い確認したのですが、大丈夫でした。

[ec2-user@ip-172-31-23-189 <リポジトリ名>]$ ps aux | grep unicorn ec2-user 8442 0.1 12.4 488700 125156 ? Sl 03:59 0:01 unicorn_rails master -c config/unicorn.rb -E production -D ec2-user 8459 0.0 11.7 489720 118320 ? Sl 04:00 0:00 unicorn_rails worker[0] -c config/unicorn.rb -E production -D ec2-user 8543 0.0 0.0 119436 984 pts/0 S+ 04:18 0:00 grep --color=auto unicorn

unicornのエラーログを確認

[ec2-user@ip-172-31-23-189 <リポジトリ名>]$ less log/unicorn.stderr.log
I, [2021-10-17T03:59:01.495784 #8229] INFO -- : master complete I, [2021-10-17T03:59:22.665214 #8442] INFO -- : Refreshing Gem list I, [2021-10-17T03:59:26.268772 #8442] INFO -- : listening on addr=0.0.0.0:3000 fd=9 I, [2021-10-17T03:59:26.320376 #8442] INFO -- : master process ready I, [2021-10-17T03:59:26.324073 #8450] INFO -- : worker=0 ready E, [2021-10-17T04:00:50.400168 #8442] ERROR -- : worker=0 PID:8450 timeout (61s > 60s), killing E, [2021-10-17T04:00:50.402542 #8442] ERROR -- : reaped #<Process::Status: pid 8450 SIGKILL (signal 9)> worker=0 I, [2021-10-17T04:00:50.404991 #8459] INFO -- : worker=0 ready

エラーが二つ…

unicorn

1#サーバ上でのアプリケーションコードが設置されているディレクトリを変数に入れておく 2app_path = File.expand_path('../../', __FILE__) 3 4#アプリケーションサーバの性能を決定する 5worker_processes 1 6 7#アプリケーションの設置されているディレクトリを指定 8working_directory app_path 9 10#Unicornの起動に必要なファイルの設置場所を指定 11pid "#{app_path}/tmp/pids/unicorn.pid" 12 13#ポート番号を指定 14listen 3000 15 16#エラーのログを記録するファイルを指定 17stderr_path "#{app_path}/log/unicorn.stderr.log" 18 19#通常のログを記録するファイルを指定 20stdout_path "#{app_path}/log/unicorn.stdout.log" 21 22#Railsアプリケーションの応答を待つ上限時間を設定 23timeout 60 24 25#以下は応用的な設定なので説明は割愛 26 27preload_app true 28GC.respond_to?(:copy_on_write_friendly=) && GC.copy_on_write_friendly = true 29 30check_client_connection false 31 32run_once = true 33 34before_fork do |server, worker| 35 defined?(ActiveRecord::Base) && 36 ActiveRecord::Base.connection.disconnect! 37 38 if run_once 39 run_once = false # prevent from firing again 40 end 41 42 old_pid = "#{server.config[:pid]}.oldbin" 43 if File.exist?(old_pid) && server.pid != old_pid 44 begin 45 sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU 46 Process.kill(sig, File.read(old_pid).to_i) 47 rescue Errno::ENOENT, Errno::ESRCH => e 48 logger.error e 49 end 50 end 51end 52 53after_fork do |_server, _worker| 54 defined?(ActiveRecord::Base) && ActiveRecord::Base.establish_connection 55end

#Railsアプリケーションの応答を待つ上限時間を設定がおかしいのかと考えましたが、ここは別に悪くないと思います。

お願い

他に見るべき点やコマンドがあれば、教えてください!

追記

イメージ説明
↓検索後、httpsにリダイレクトされている

イメージ説明

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

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

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

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

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

yu_1985

2021/10/17 05:26

ERR_SSL_PROTOCOL_ERROR と出ているのが気になるのですが、実際にはhttpsでアクセスしてしまっていませんか? キャッシュが残って勝手にhttpsにされてしまうこともあるんで、Chromeだったらゲストユーザのウインドウを立ち上げて、明示的にhttpのURLを指定してアクセスしてみて同じことになるかを確認してみてください。
mokosamejima

2021/10/17 09:01

ご返信ありがとうございます。 http://<Elastic IP>:3000/としても、確かにhttpsでアクセスになっていました。 ちょっと前に、https化の設定を同じアプリで行って、不具合が出たので初めから設定をやり直していました。多分、その影響ですかね… httpsにならないように、少し調べてみますが、もし分かるようでしたら教えていただけると幸いです
yu_1985

2021/10/17 09:20

> キャッシュが残って勝手にhttpsにされてしまうこともあるんで、Chromeだったらゲストユーザのウインドウを立ち上げて、明示的にhttpのURLを指定してアクセスしてみて同じことになるかを確認してみてください。 記載したとおりにしてみてください。
mokosamejima

2021/10/17 09:28

Chromeのゲストユーザのウインドウを立ち上げても同じく、自動的ににhttps化されています。
yu_1985

2021/10/17 10:03

ブラウザウィンドウからのコピペではなく、明示的にhttp://〜でURLを入力しましたか?
mokosamejima

2021/10/17 11:29

明示的に入力できていると思います! ただ、何度やってもhttpsに変換されてしまいますね…
yu_1985

2021/10/17 15:55

ちょっとわからないので実際のスクショを貼ってみてください
mokosamejima

2021/10/18 00:07

承知しました! 記事の方に追記しましたので、ご確認のほどよろしくお願いします
maisumakun

2021/10/18 01:09

Railsサイドでforce_sslの設定を間違って入れていたりはしませんか?
mokosamejima

2021/10/18 01:17

config/environments/production.rb などの設定ファイルにそれっぽい記述がありました。 # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. config.force_ssl = true これの事だったりしますか?
mokosamejima

2021/10/18 01:23

なるほど、こいつでしたか… これは、丸ごと消した方がいいのでしょうか?
maisumakun

2021/10/18 01:31

コメントアウトしておくのがいいかと思います(実用サービスになったら必要となることも考えられます)。
mokosamejima

2021/10/18 01:33

確かにそうですね! 解決していただき、ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問