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

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

新規登録して質問してみよう
ただいま回答率
85.49%
AWS(Amazon Web Services)

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

Q&A

解決済

3回答

8985閲覧

AWS デプロイ 500エラー になります!

nk117

総合スコア31

AWS(Amazon Web Services)

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

0グッド

0クリップ

投稿2017/07/25 04:30

編集2017/07/26 02:58

イメージ説明

Railsで作成したサイトをAWSにデプロイし、いざIPアドレスで表示させようとした所500エラーになります。
あと一歩のところで1日が経過しました。この問題で考えられる原因はありますか?

現状について・・・
ec2
nginx
mysql
unicorn
は全て起動確認済です。

rake db:migrate RAILS_ENV=productionもできました。
プリコンパイルも完了しています。

環境について・・・
AWS
ec2
mac osx
ruby 2.3.1
rails 4.2.6
nginx/1.10.3
unicorn v5.2.0
mysql 5.5.56

初学者ですが何卒宜しくお願いします。

追記

nginx.error.logの内容↓

2017/07/25 04:15:20 [error] 2965#0: *3 connect() to unix:/var/www/rails/アプリ名/tmp/sockets/.unicorn.sock failed (111: Connection refused) while connecting to upstream, client: 139.162.124.167, server: ipアドレス, request: "GET / HTTP/1.1", upstream: "http://unix:/var/www/rails/アプリ名/tmp/sockets/.unicorn.sock:/", host: "ipアドレス"
2017/07/25 23:41:18 [error] 29018#0: *33 open() "/usr/share/nginx/html/phpmyadmin/scripts/setup.php" failed (2: No such file or directory), client: 191.96.249.136, server: localhost, request: "GET /phpmyadmin/scripts/setup.php HTTP/1.0"

unicornの設定
unicorn.conf.rb↓

# set lets $worker = 2 $timeout = 30 $app_dir = "/var/www/rails/アプリ名" $listen = File.expand_path 'tmp/sockets/.unicorn.sock', $app_dir $pid = File.expand_path 'tmp/pids/unicorn.pid', $app_dir $std_log = File.expand_path 'log/unicorn.log', $app_dir # set config worker_processes $worker working_directory $app_dir stderr_path $std_log stdout_path $std_log timeout $timeout listen $listen pid $pid # loading booster preload_app true # before starting processes before_fork do |server, worker| defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect! old_pid = "#{server.config[:pid]}.oldbin" if old_pid != server.pid begin Process.kill "QUIT", File.read(old_pid).to_i rescue Errno::ENOENT, Errno::ESRCH end end end # after finishing processes after_fork do |server, worker| defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection end

nginxの設定
アプリ名.conf↓

# log directory error_log /var/www/rails/アプリ名/log/nginx.error.log; access_log /var/www/rails/アプリ名/log/nginx.access.log; # max body size client_max_body_size 2G; upstream app_server { # for UNIX domain socket setups server unix:/var/www/rails/アプリ名/tmp/sockets/.unicorn.sock fail_timeout=0; } server { listen 80; server_name IPアドレス; # nginx so increasing this is generally safe... keepalive_timeout 5; # path for static files root /var/www/rails/アプリ名/public; # page cache loading try_files $uri/index.html $uri.html $uri @app; location @app { # HTTP headers proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app_server; } # Rails error pages error_page 500 502 503 504 /500.html; location = /500.html { root /var/www/rails/アプリ名/public; } }

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

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

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

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

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

CHERRY

2017/07/25 04:34

nginx のログに出力されている内容を質問に追記してください。
nk117

2017/07/26 02:51

ご返信有難う御座います。追記しました。
guest

回答3

0

ベストアンサー

2017/07/25 04:15:20 のログが恐らくnk117さんがアクセスしたものと思われますが、UNIXドメインソケットへ接続できないエラーです。
nginxプロセスのオーナーは通常nginxユーザーですが、このユーザーから対象のUNIXドメインソケットへはアクセス可能でしょうか?
下記コマンドの結果を教えてください。

ls -l /var/www/rails/アプリ名/tmp/sockets/.unicorn.sock ls -ld /var/www/rails/アプリ名/tmp/sockets ls -ld /var/www/rails/アプリ名/tmp ls -ld /var/www/rails/アプリ名 ls -ld /var/www/rails ls -ld /var/www ls -ld /var

以下追記

パーミッションは問題なさそうです。
UNIXドメインSOCKETはいくつか制限あるので私は利用を避けてます。(CentOS7では/tmpで共有できないとか)

可能であればINETドメインSOCKETにしてみては如何でしょうか。

  • unicorn.conf.rb
listen "127.0.0.1:3000"
  • アプリ名.conf
upstream app_server { # for UNIX domain socket setups server 127.0.0.1:3000; }

投稿2017/07/26 03:28

編集2017/07/26 03:56
moonphase

総合スコア6621

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

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

nk117

2017/07/26 03:35

$ ls -l /var/www/rails/contents-store/tmp/sockets/.unicorn.sock srwxrwxrwx 1 ユーザー名 ユーザー名 0 7月 26 03:25 /var/www/rails/アプリ名/tmp/sockets/.unicorn.sock $ ls -ld /var/www/rails/アプリ名/tmp/sockets drwxrwxr-x 2 ユーザー名 ユーザー名 4096 7月 26 03:25 /var/www/rails/アプリ名/tmp/sockets $ ls -ld /var/www/rails/アプリ名/tmp drwxrwxr-x 6 ユーザー名 ユーザー名 4096 7月 24 15:03 /var/www/rails/アプリ名/tmp $ ls -ld /var/www/rails/アプリ名/ drwxrwxr-x 13 ユーザー名 ユーザー名 4096 7月 25 04:09 /var/www/rails/アプリ名/ $ ls -ld /var/www/rails drwxr-xr-x 3 ユーザー名 root 4096 7月 24 14:22 /var/www/rails $ ls -ld /var/www drwxr-xr-x 3 ユーザー名 root 4096 7月 24 13:30 /var/www $ ls -ld /var drwxr-xr-x 20 ユーザー名 root 4096 7月 24 13:29 /var
nk117

2017/07/26 03:36

ご返信有難う御座います。コマンド結果となります。
nk117

2017/07/26 04:18

書き換えてunicornを再起動したところ、下記エラーが発生しました。 /home/ユーザー名/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/unicorn-5.2.0/lib/unicorn/configurator.rb:589:in `pack_sockaddr_in': getaddrinfo: Name or service not known (SocketError) from /home/ユーザー名/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/unicorn-5.2.0/lib/unicorn/configurator.rb:589:in `canonicalize_tcp' from /home/ユーザー名/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/unicorn-5.2.0/lib/unicorn/configurator.rb:575:in `expand_addr' from /home/ユーザー名/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/unicorn-5.2.0/lib/unicorn/configurator.rb:408:in `listen' from /var/www/rails/アプリ名/config/unicorn.conf.rb:14:in `reload' from /home/ユーザー名/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/unicorn-5.2.0/lib/unicorn/configurator.rb:72:in `instance_eval' from /home/ユーザー名/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/unicorn-5.2.0/lib/unicorn/configurator.rb:72:in `reload' from /home/ユーザー名/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/unicorn-5.2.0/lib/unicorn/configurator.rb:65:in `initialize' from /home/ユーザー名/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/unicorn-5.2.0/lib/unicorn/http_server.rb:76:in `new' from /home/ユーザー名/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/unicorn-5.2.0/lib/unicorn/http_server.rb:76:in `initialize' from /home/ユーザー名/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/unicorn-5.2.0/bin/unicorn_rails:209:in `new' from /home/ユーザー名/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/unicorn-5.2.0/bin/unicorn_rails:209:in `<top (required)>' from /home/ユーザー名/.rbenv/versions/2.3.1/bin/unicorn_rails:23:in `load' from /home/ユーザー名/.rbenv/versions/2.3.1/bin/unicorn_rails:23:in `<main>' master failed to start, check stderr log for details
moonphase

2017/07/26 04:41

以下に変更すると如何でしょうか? listen 3000
nk117

2017/07/26 05:48

ユニコーン起動できました! We're sorry, but something went wrong. If you are the application owner check the logs for more information. IPアドレスでアクセスしたところ、上記のエラー文が表示されております。
nk117

2017/07/26 12:27

更新 listen 3000の設定を一箇所もれていたので、修正後、IPアドレスでアクセスしたところ、 Welcome to nginx on the Amazon Linux AMI!のページが表示されています。
nk117

2017/07/26 16:51

500エラーは解消したので一度質問を閉じます。有難う御座いました。
guest

0

500だとnginxには到達しているはずなので、
nginx、unicorn, railsのログを見たら何かないですか。

初学者ならnginxとunicornのproxyあたりが怪しいと思います。
・nginxとunicornの実行ユーザ
・ソケットのパーミッション(ファイル、ディレクトリ)

ソケットならhttpにしてみたり、nginxのconfをデフォルトからチューニングなしでまず設定してみるとか。

投稿2017/07/25 07:15

ya.sasaki

総合スコア12

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

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

0

質問者様の設定内容などをチェックできないのでなんとも言えませんが、
internal server errorということで、まずはrailsアプリがローカル上でエラーを出さないか確認
➡︎OKの場合は、経験上nginxの設定ファイルが間違っている場合が多い気がします、、
こちらの記事などで詳しく解説されているのでチェックされてみてはいかがでしょうか。
http://qiita.com/naoki_mochizuki/items/f795fe3e661a3349a7ce

投稿2017/07/25 04:37

namenamenameko

総合スコア234

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

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

nk117

2017/07/26 03:00

ローカル上では問題ないので、本番環境のなにかが原因だと思われます。
nk117

2017/07/26 03:03 編集

http://qiita.com/naoki_mochizuki/items/f795fe3e661a3349a7ce 上記URL有難う御座います。こちらのサイトの手順でデプロイ作業を進めるのは2回目です。前回も同じように500エラーが起きたのですが、ユニコーンを再起動することで解決しました。今回は再起動しても解決に至っておりません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問