AWSでCapistranoを利用した自動デプロイ設定をしています。
流れとしてEC2でインスタンスを作成→Rubyをインストール→Railsとデータベースの設定(Mysql)→GitHubにSSH鍵を登録→GiyHubからコードをクローン→本番環境の設定(Swap(スワップ)領域設定、本番環境でbundlerをインストール、railsの起動の設定、Nginxの設定まで完了させました。
その後、Capistanoを使用できるように設定をしているのですが、以下のようなエラーが出ている状態です。
本番環境のアドレスにアクセスすると以下のエラーが発生。
502 Bad Gateway
Unicornが起動していない、ec2を再起動など原因があると思い、調べてみたところ、Unicornの起動に失敗していることが分かりました。
以下のコマンドを実行すると以下のようなエラーが出る状態です。
EC2サーバー側のエラー
1bundler: failed to load command: unicorn_rails (/home/ec2-user/.rbenv/versions/2.5.8/bin/unicorn_rails) 2ArgumentError: config_file=config/unicorn.rb would not be accessible in working_directory=/var/www/current 3 /home/ec2-user/.rbenv/versions/2.5.8/lib/ruby/gems/2.5.0/gems/unicorn-5.4.1/lib/unicorn/configurator.rb:592:in `working_directory' 4 config/unicorn.rb:5:in `reload' 5 /home/ec2-user/.rbenv/versions/2.5.8/lib/ruby/gems/2.5.0/gems/unicorn-5.4.1/lib/unicorn/configurator.rb:84:in `instance_eval' 6 /home/ec2-user/.rbenv/versions/2.5.8/lib/ruby/gems/2.5.0/gems/unicorn-5.4.1/lib/unicorn/configurator.rb:84:in `reload' 7 /home/ec2-user/.rbenv/versions/2.5.8/lib/ruby/gems/2.5.0/gems/unicorn-5.4.1/lib/unicorn/configurator.rb:77:in `initialize' 8 /home/ec2-user/.rbenv/versions/2.5.8/lib/ruby/gems/2.5.0/gems/unicorn-5.4.1/lib/unicorn/http_server.rb:77:in `new' 9 /home/ec2-user/.rbenv/versions/2.5.8/lib/ruby/gems/2.5.0/gems/unicorn-5.4.1/lib/unicorn/http_server.rb:77:in `initialize' 10 /home/ec2-user/.rbenv/versions/2.5.8/lib/ruby/gems/2.5.0/gems/unicorn-5.4.1/bin/unicorn_rails:209:in `new' 11 /home/ec2-user/.rbenv/versions/2.5.8/lib/ruby/gems/2.5.0/gems/unicorn-5.4.1/bin/unicorn_rails:209:in `<top (required)>' 12 /home/ec2-user/.rbenv/versions/2.5.8/bin/unicorn_rails:23:in `load' 13 /home/ec2-user/.rbenv/versions/2.5.8/bin/unicorn_rails:23:in `<top (required)>' 14master failed to start, check stderr log for details
config/unicorn.rb
1app_path = File.expand_path('../../../', __FILE__) 2 3 4worker_processes 1 5# currentを指定 6working_directory "#{app_path}/current" 7 8# それぞれ、sharedの中を参照するよう変更 9 10pid "#{app_path}/shared/tmp/pids/unicorn.pid" 11 12listen "#{app_path}/shared/tmp/sockets/unicorn.sock" 13 14stderr_path "#{app_path}/shared/log/unicorn.stderr.log" 15 16stdout_path "#{app_path}/shared/log/unicorn.stdout.log" 17#Railsアプリケーションの応答を待つ上限時間を設定 18timeout 60 19 20#以下は応用的な設定なので説明は割愛 21 22preload_app true 23GC.respond_to?(:copy_on_write_friendly=) && GC.copy_on_write_friendly = true 24 25check_client_connection false 26 27run_once = true 28 29before_fork do |server, worker| 30 defined?(ActiveRecord::Base) && 31 ActiveRecord::Base.connection.disconnect! 32 33 if run_once 34 run_once = false # prevent from firing again 35 end 36 37 old_pid = "#{server.config[:pid]}.oldbin" 38 if File.exist?(old_pid) && server.pid != old_pid 39 begin 40 sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU 41 Process.kill(sig, File.read(old_pid).to_i) 42 rescue Errno::ENOENT, Errno::ESRCH => e 43 logger.error e 44 end 45 end 46end 47 48after_fork do |_server, _worker| 49 defined?(ActiveRecord::Base) && ActiveRecord::Base.establish_connection 50end
rails.conf
1upstream app_server { 2 # sharedの中を参照するよう変更 3 server unix:/var/www/<アプリケーション名>/shared/tmp/sockets/unicorn.sock; 4} 5 6server { 7 listen 80; 8 server_name <Elastic IPを記入>; 9 10# クライアントからアップロードされてくるファイルの容量の上限を2ギガに設定。デフォルトは1メガなので大きめにしておく 11 client_max_body_size 2g; 12 13 # currentの中を参照するよう変更 14 root /var/www/<アプリケーション名>/current/public; 15 16 location ^~ /assets/ { 17 gzip_static on; 18 expires max; 19 add_header Cache-Control public; 20 # currentの中を参照するよう変更 21 root /var/www/<アプリケーション名>/current/public; 22 } 23 24 try_files $uri/index.html $uri @unicorn; 25 26 location @unicorn { 27 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 28 proxy_set_header Host $http_host; 29 proxy_redirect off; 30 proxy_pass http://app_server; 31 } 32 33 error_page 500 502 503 504 /500.html; 34}
こちら原因分かる方いませんでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/08/23 09:38
2020/08/23 09:42
退会済みユーザー
2020/08/23 09:46
2020/08/23 09:54
退会済みユーザー
2020/08/23 10:33
退会済みユーザー
2020/08/23 12:10 編集
2020/08/23 12:51
退会済みユーザー
2020/08/23 14:09 編集