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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

unicorn

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

nginx

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

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Capistrano

Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

Q&A

解決済

1回答

4178閲覧

Nginxの連携で デプロイしたRailsアプリのIndexが表示されず Not Found: /が表示されてしまう

HiromasaSuzuki

総合スコア13

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

unicorn

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

nginx

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

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Capistrano

Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

0グッド

0クリップ

投稿2016/10/25 01:39

皆様

ご拝読頂きましてありがとうございます。
手元のローカルマシンからVPS(CentOS)にデプロイまでは完了し、
後はアプリの画面を表示させるだけなのですが、どうしても上手くいきません。
お力添えお願い致します。

エラーメッセージ

(http://[IPアドレス]:3000/)アクセス時
・ (http://[IPアドレス]:3000/)アクセス時、上記がブラウザ上で表示
・ ブラウザコンソール画面を開くと404のエラーメッセージ(初回アクセス時のみ)

環境

・ さくらVPS / CentOS 6.8 / rails 4.2.6 / Nginx 1.10.1 / Capistrano3/ mysql
・ 手元(Mac)からデプロイ完了済み
・ 表示させたいindexのディレクトリ
└ /var/www/my_app/current/app/views/companies/index.html.erb

現状

当初はUnicornでの起動を試みていたが、UnicornとNginxの設定ミスかと思い、試行錯誤するも上手く行かなかったので、Webrickで起動。(下記コマンド)そこで同様の問題が発生。
nginxの設定ミスなのか、それともデプロイ時に致命的なミスをしているのかも分からず立ち往生中。

[my_name@my_app current]$ RAILS_ENV=staging bundle exec bundle exec rails server -b 0.0.0.0 => Booting WEBrick => Rails 4.2.6 application starting in staging on http://0.0.0.0:3000 => Run `rails server -h` for more startup options => Ctrl-C to shutdown server [2016-10-25 10:23:21] INFO WEBrick 1.3.1 [2016-10-25 10:23:21] INFO ruby 2.3.1 (2016-04-26) [x86_64-linux] [2016-10-25 10:23:21] INFO WEBrick::HTTPServer#start: pid=6191 port=3000

/etc/nginx/nginx.conf


user my_name; worker_cpu_affinity auto; worker_processes auto; worker_rlimit_nofile 4096; error_log /var/log/nginx/error.log info; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; gzip_proxied any; gzip_types text/plain text/xml text/css text/comma-separated-values text/javascript application/x-javascript application/atom+xml; keepalive_timeout 65; gzip on; server_tokens off; include /etc/nginx/conf.d/local.conf; }

/etc/nginx/conf.d/local.conf(default.conf)

server { listen 80; listen [::]:80; server_name IPアドレス; root /var/www/my_app/current; #my_app = 自分のアプリ名 client_max_body_size 4G; location /favicon { empty_gif; access_log off; log_not_found off; } }

config/deploy.rb (デプロイ時の設定)

# http://qiita.com/zaru/items/9e02706b27094ce36902 参考にしたサイト # config valid only for current version of Capistrano lock '3.6.1' set :application, 'my_app' set :repo_url, 'git@github.com:my_name/my_app.git' set :log_level, :debug set :keep_releases, 3 set :deploy_to, '/var/www/my_app' set :scm, :git set :format, :pretty set :ssh_options, :port => "2222" set :rvm_type, :user set :default_env, { rvm_bin_path: '~/.rvm/bin/rvm' } set :rvm1_ruby_version, "ruby-2.3.1" set :rvm1_map_bins, %w{rake gem bundle ruby} set :pty, true set :linked_files, fetch(:linked_files, [ ]).push('config/database.yml', 'config/secrets.yml') set :linked_dirs, fetch(:linked_dirs, [ ]).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'public/system', 'vendor/bundle') after 'deploy:publishing', 'deploy:restart' namespace :deploy do desc 'Restart application' task :restart do invoke 'unicorn:restart' end desc 'upload important files' task :upload do on roles(:app) do |host| execute :mkdir, '-p', "#{shared_path}/config" upload!('config/database.yml',"#{shared_path}/config/database.yml") upload!('config/secrets.yml',"#{shared_path}/config/secrets.yml") end end before :starting, 'deploy:upload' after :finishing, 'deploy:cleanup' end

追記情報などご必要でしたらお申し付け下さい。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Nginxを挟むならこんな感じです。

upstream unicorn { server 127.0.0.1:3000; } server { listen 80; listen [::]:80; server_name IPアドレス; root /var/www/my_app/current/public; #my_app = 自分のアプリ名 client_max_body_size 4G; location /favicon { empty_gif; access_log off; log_not_found off; } location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass_header Content-Disposition; proxy_redirect off; if (!-f $request_filename) { proxy_pass http://unicorn; break; } } }

投稿2016/10/26 07:25

moonphase

総合スコア6621

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

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

HiromasaSuzuki

2016/10/27 03:47

ありがとうございます!!!! お陰で表示することが出来ました。
退会済みユーザー

退会済みユーザー

2017/08/13 07:19

横から失礼します。 root /var/www/my_app/current/public;と root /var/www/my_app/public; を設定上、頻繁に見かけます。この両者の違いは何でしょうか。
moonphase

2017/08/17 02:08

nginxでサーブするファイル群が入っているパスの違いです。 前者のように"current"が入っているものは、次のように/var/www/my_app配下の特定のバージョンにリンクされている感じになっています。 /var/www/my_app/current -> /var/www/my_app/XXXXXXXX 新しいバージョンをデプロイしたらこのリンクを張り替える形となります。 後者のcurrentが入っていないものは、上記のようなバージョン管理方法ではないということかな。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問