概要
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アプリケーションの応答を待つ上限時間を設定
がおかしいのかと考えましたが、ここは別に悪くないと思います。
お願い
他に見るべき点やコマンドがあれば、教えてください!
追記
あなたの回答
tips
プレビュー