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

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

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

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

nginx

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

Ruby on Rails

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

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Q&A

1回答

3052閲覧

nginxのディレクトリを正しく指定できず、表示できません…

s.k

総合スコア423

unicorn

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

nginx

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

Ruby on Rails

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

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

0グッド

0クリップ

投稿2017/02/02 09:26

編集2017/02/02 09:27

###前提・実現したいこと
デプロイしたRailsアプリをさくらのVPS上に表示したいです。

unicornとnginxの連携をとれず、
アプリを表示できない状況です…

現状、welcome nginxの表示、unicornの起動を確認しています。

【nginxの表示】
イメージ説明

【unicornの起動】

[anime@tk2-241-30026 ~]$ ps aux | grep unicorn anime 24320 0.0 3.3 305252 63816 ? Sl 12:58 0:02 unicorn_rails master -c /home/anime/app/anime-report/config/unicorn.rb -E development -D anime 24323 0.0 3.1 305252 59664 ? Sl 12:58 0:00 unicorn_rails worker[0] -c /home/anime/app/anime-report/config/unicorn.rb -E development -D anime 24326 0.0 3.1 305252 59664 ? Sl 12:58 0:00 unicorn_rails worker[1] -c /home/anime/app/anime-report/config/unicorn.rb -E development -D anime 25533 0.0 0.0 103328 868 pts/0 S+ 15:45 0:00 grep unicorn

おそらくディレクトリ設定が正しく設定されていないと思うのですが、
何が正解なのかわからずです。

もし、ご経験ある方いらっしゃればご指摘お願いします。

###該当のソースコード

【nginx起動OK】

[anime@tk2-241-30026 ~]$ sudo service nginx restart nginx を停止中: [ OK ] nginx を起動中: [ OK ]

【sudo vim /etc/nginx/conf.d/sample.conf】

upstream unicorn { server unix:/var/run/unicorn/unicorn.socket; } server { listen 80;★ここを61203にしてnginxを起動するとエラーになります★ server_name 160.16.198.30; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; root /home/anime/app/anime-report; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; error_page 404 /404.html; error_page 500 502 503 504 /500.html; client_max_body_size 10M; try_files $uri $uri/index.html $uri.html @unicorn; location / { root /usr/share/nginx/html; } location @unicorn { proxy_read_timeout 300; proxy_connect_timeout 300; proxy_redirect off; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://unicorn; }

【config/unicorn.rb】

worker_processes 2 working_directory "/home/anime/app/anime-report" listen "/var/run/unicorn/unicorn.sock" pid "/var/run/unicorn/unicorn.pid" preload_app true

###補足情報(言語/FW/ツール等のバージョンなど)
・nginx version: nginx/1.10.2
・CentOS 6.8

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

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

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

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

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

suama

2017/02/03 15:08

nginxの設定のupstream unicorn ... のところと、unicorn.rb でしているソケットの名前が若干違うように見えますが、これはタイプミスでしょうか?実際は同じ値だけれどうまく連携してない状況でしょうか?
s.k

2017/02/03 15:40

ソケットの名前が違うのはふつうにミス(タイプミスではない)です!
guest

回答1

0

unicornのプロセスは上がっているとのことですので、socatかncコマンドを使って、ソケットに対してリクエストを投げてみて、レスポンスが返ってくるか確認してみてはいかがでしょうか。

参考: http://qiita.com/taksatou@github/items/c7c435a157759a64ae50

こんな感じでレスポンスが返ってくればリクエストは受け付けてくれそうなので、あとはnginxとの連携部分かなと思います。

$ echo -e 'GET / HTTP/1.0\r\n\r' | nc -U /var/run/unicorn/unicorn.sock

うまくレスポンスが返ってこない場合は、unicornのログにも何か出ているのではないかと思います。

nginxとうまく繋がらない点、nginx, unicorn双方のログを見てみるのに加えて、nginx.confの

upstream unicorn { server unix:/var/run/unicorn/unicorn.socket; } ``` の設定とunicorn.rb で指定しているソケットのファイル名がちょっと違うのも気になりましたので、そのあたりも確認してみてください。 状況が変わらなかったら申し訳ございません... どうしてもうまくいかない場合は、socketではなくtcp port (3000とか)で連携のほうが良いかなと思います。

投稿2017/02/03 15:17

suama

総合スコア1997

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

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

s.k

2017/02/03 15:38

ありがとうございます! 試します!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問