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

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

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

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ruby on Rails

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

Q&A

解決済

1回答

2563閲覧

rails4のnginx + unicornでデプロイ後、サイトが真っ白で表示されない

ayu

総合スコア212

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ruby on Rails

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

0グッド

2クリップ

投稿2016/04/17 08:28

こんばんわ。

現在、さくらVPSでnginx + unicorn + capistranoで設定をしております。

独自ドメインで表示するのですが、まっしろな状態で困っております。

設定ファイルは次の通りです。

・nginx
/etc/nginx/site-enabled/my_app.conf(さくらVPS)

upstream unicorn { server unix:/tmp/unicorn.my_app.sock fail_timeout=0; } server { listen 80; server_name www.my_app.com; # Application root, as defined previously root /var/www/app/my_app/current/public; location ^~ /assets/ { gzip_static on; expires max; add_header Cache-Control public; } location ~ ^/(robots.txt|sitemap.xml.gz)/ { root /var/www/app/current/public; } try_files $uri/index.html $uri @unicorn; location @unicorn { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://unicorn; } error_page 500 502 503 504 /500.html; client_max_body_size 4G; keepalive_timeout 10; }

・unicorn
/config/unicorn/production.rb

root = "/var/www/app/my_app/current" working_directory root pid "#{root}/tmp/pids/unicorn.pid" stderr_path "#{root}/log/unicorn.log" stdout_path "#{root}/log/unicorn.log" worker_processes 4 timeout 30 preload_app true listen '/tmp/unicorn.my_app.sock', backlog: 64 before_fork do |server, worker| Signal.trap 'TERM' do puts 'Unicorn master intercepting TERM and sending myself QUIT instead' Process.kill 'QUIT', Process.pid end defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect! end after_fork do |server, worker| Signal.trap 'TERM' do puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT' end defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection end # Force the bundler gemfile environment variable to # reference the capistrano "current" symlink before_exec do |_| ENV['BUNDLE_GEMFILE'] = File.join(root, 'Gemfile') end

nginxとunicornは無事に動いております。
ps aux | grep nginx

www-data 20842 0.0 0.3 91580 3712 ? S 17:22 0:00 nginx: worker process www-data 20843 0.0 0.3 91580 3712 ? S 17:22 0:00 nginx: worker process www-data 20844 0.0 0.3 91580 3712 ? S 17:22 0:00 nginx: worker process www-data 20845 0.0 0.3 91580 3712 ? S 17:22 0:00 nginx: worker process

ps aux | grep unicorn

hoge 20185 0.1 8.6 307708 88732 ? Sl 16:40 0:03 unicorn master (old) -c /var/www/app/my_app/current/config/unicorn/production.rb -E deployment -D hoge 20213 0.0 8.1 307708 83372 ? Sl 16:40 0:00 unicorn worker[2] -c /var/www/app/my_app/current/config/unicorn/production.rb -E deployment -D hoge 20217 0.0 8.1 307708 83324 ? Sl 16:40 0:00 unicorn worker[1] -c /var/www/app/my_app/current/config/unicorn/production.rb -E deployment -D hoge 20221 0.0 8.1 307708 83372 ? Sl 16:40 0:00 unicorn worker[0] -c /var/www/app/my_app/current/config/unicorn/production.rb -E deployment -D hoge 20224 0.0 8.1 307708 83068 ? Sl 16:40 0:00 unicorn worker[3] -c /var/www/app/my_app/current/config/unicorn/production.rb -E deployment -D hoge 20358 0.1 8.7 307712 89272 ? Sl 16:54 0:03 unicorn master -c /var/www/app/my_app/current/config/unicorn/production.rb -E deployment -D hoge 20364 0.0 8.0 242176 82924 ? Sl 16:54 0:00 unicorn worker[0] -c /var/www/app/my_app/current/config/unicorn/production.rb -E deployment -D hoge 20367 0.0 8.0 242176 82860 ? Sl 16:54 0:00 unicorn worker[1] -c /var/www/app/my_app/current/config/unicorn/production.rb -E deployment -D hoge 20370 0.0 8.1 242176 82992 ? Sl 16:54 0:00 unicorn worker[2] -c /var/www/app/my_app/current/config/unicorn/production.rb -E deployment -D hoge 20372 0.0 8.1 242176 83232 ? Sl 16:54 0:00 unicorn worker[3] -c /var/www/app/my_app/current/config/unicorn/production.rb -E deployment -D hoge 20873 0.0 0.2 12228 2056 pts/8 S+ 17:24 0:00 grep unicorn

pathの問題だと思うのですが、error logに表示されないので・・・
my_app/404.htmlでは、404ページは表示されます。
お手数をおかけしますが、ご教授をお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

railsの開発を前提として進めますね。unicornの設定はおかしくなさそうなので,
config/routes.rbで,

root to: 'home#index'

などで,applicationのrootを設定しているか確認してみてください。
home#indexは,app/views/home/index.htmlを参照しているので,
もし変更しているのであれば設定し直す必要があります。

こちら設定してあったり,設定し直してもうまくいかなかった場合はご返信お願いします。

投稿2016/04/17 09:49

編集2016/04/17 10:07
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

ayu

2016/04/17 09:55

tkow様 回答ありがとうございます。 routesはきちんと設定しておりました。 ``` root 'hoge#new' ``` 今は下記を参照しておりました。 「Rails が production 環境で真っ白、SECRET_KEY_BASE 設定忘れが原因でした」 http://easyramble.com/rails-secret-key-base-env.html ただ、エラーログに書き込みがないんですよね・・・
退会済みユーザー

退会済みユーザー

2016/04/17 10:22

なるほど。リンク先の原因の可能性が高そうですね。 unicornだけでなくnginxのlogの設定をしてみるのはどうでしょうか? error_log 出力したいpath/error.log; でできると思うんので試してみるのもいいかもしれません。
ayu

2016/04/17 11:40

tkow様 返信ありがとうございます。 nginxのlogは**/var/log/nginx/error.log**で確認しております。 ただし、それらしいエラーはないですね・・・>_< 以前は表示できていなかったので、そのエラーはありましたが、今は関係ないです。
退会済みユーザー

退会済みユーザー

2016/04/17 12:29

なるほど結構根が深そうですね。実稼働しているサービスで突然動かなくなったという感じでしょうか? でないとするならば,ブラウザからサーバにアクセスしてブラウザのデベロッパーツールで(Chromeではsourceタグなど)で見られるブラウザが参照するべきファイル(特に全パスで参照できるはずのassetsフォルダ)の有無を確認してサーバから情報が送られて来ているか確認してください。 送られていなければenginxやunicornの問題である可能性が高いです。送られて来ているのに該当htmlが表示できない場合は,rails側でコードがエラー吐いてる可能性が高いです(errologがないのは妙ですが)。 これらの情報を元に,検証してみてください。 最小限の設定は http://qiita.com/noppefoxwolf/items/e1e5a5ab221f8224890d に書かれていると思うので,実稼働での影響が差し支えない範囲であれば最小構成でやり直してみるというのも手かと思います。
ayu

2016/04/17 13:07

>なるほど結構根が深そうですね。実稼働しているサービスで突然動かなくなったという感じでしょうか? 趣味で作ろうとしている個人のサイトです。 >でないとするならば,ブラウザからサーバにアクセスしてブラウザのデベロッパーツールで(Chromeではsourceタグなど)で見られるブラウザが参照するべきファイル(特に全パスで参照できるはずのassetsフォルダ)の有無を確認してサーバから情報が送られて来ているか確認してください。 DEBUG [b1204a73] Command: [ -d /var/www/app/my_app/releases/20160417130335/public/assets ] DEBUG [b1204a73] Finished in 0.099 seconds with exit status 1 (failed). よくみるとdeployで失敗している気がしてきました・・・ chromeで見たところ、assets関係は何も入っていないですね。 少し、調べてみます>_< ありがとうございます!
ayu

2016/04/18 12:38

unicornを切ったり、nginxの設定を変更することで無事にサイトを見ることができました。 原因がわからないのですが、開けたので良かったです。
退会済みユーザー

退会済みユーザー

2016/04/18 12:45

unicorn再起動で直るのはたまにありますね。unicornの設定は起動時にしか読まれないのでそれに付随するバグがあったのかと予想します。解決出来て良かったですね!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問