前提・実現したいこと
デプロイしたRailsアプリをさくらのVPS上に表示したいです。
unicornとnginxの連携をとれず、
アプリを表示できない状況です…
現状、welcome nginxの表示、unicornの起動を確認しています。
【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
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
+1
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とか)で連携のほうが良いかなと思います。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.10%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
suama
2017/02/04 00:08
nginxの設定のupstream unicorn ... のところと、unicorn.rb でしているソケットの名前が若干違うように見えますが、これはタイプミスでしょうか?実際は同じ値だけれどうまく連携してない状況でしょうか?
s.k
2017/02/04 00:40
ソケットの名前が違うのはふつうにミス(タイプミスではない)です!