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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails 5

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

nginx

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

VPS

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

Capistrano

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

Q&A

解決済

2回答

5077閲覧

ソケットファイル[.unicorn.sock]には何が記述されるべきなのでしょうか?

koume

総合スコア458

Ruby on Rails 5

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

nginx

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

VPS

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

Capistrano

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

0グッド

0クリップ

投稿2019/04/27 16:53

Rails アプリを さくらのVPSにデプロイしています。
Nginx + unicorn なのですが、それを連携するファイルの設定について教えてください。
以下のように設定しています。

(local) config/unicorn/production.rb #自分のアプリケーション名、currentがつくことに注意。 $app_dir = "/usr/share/nginx/html/current" #リクエストを受け取るポート番号を指定。後述 $listen = File.expand_path 'tmp/sockets/.unicorn.sock', $app_dir
(vps) /etc/nginx/conf.d/rails.conf upstream unicorn { server unix:/usr/share/nginx/html/current/tmp/sockets/.unicorn.sock fail_timeout=0; }

のように設定しています。
何が記述されているのか確認したくて VPS側で
vim /usr/share/nginx/html/current/tmp/sockets/.unicorn.sock で開くと
[Permission Denied]となり、中身をみることができません。

確認したいことは、capistranoでデプロイ時にエラーは出ていないのでNginxとunicornの双方で指定するファイル名に名違いがなければ、特に気にする必要はないファイルなのでしょうか?

VPS側にファイルは出来ているみたいです。

Nginx + unicornの設定は初めてなので初歩的な質問ですが、宜しくお願いします。

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

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

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

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

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

guest

回答2

0

どこまで理解した上で解決済みとしたかわかりませんが、ソケットファイルについて補足しましょう。

ソケットファイルは同一ホスト内でプロセス同士が通信に用いるファイルです。今回のケースだとnginxとunicornとの間で通信する際に用いられます。
設定などが書き込まれているのではなく、同一ホスト内でのプロセス間の通信を実現するための抽象的な概念としてのファイルとなります。なので、テキストエディタなどで見ることはできません。また、ユーザーがいじっていいものではありません。

詳しく知りたければ、「UNIX ソケットファイル」あたりで検索するとより良い情報が得られると思います。

投稿2019/04/28 15:54

archiver

総合スコア1557

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

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

koume

2019/04/29 13:53

回答有り難うございます。詳しい説明で勉強になります。今後とも宜しくお願いします。
guest

0

ベストアンサー

Nginxとunicornの双方で指定するファイル名に名違いがなければ、特に気にする必要はないファイルなのでしょうか?

その通りです。
(あまり気にかけられていないだけで、本当は気にする必要があるのかもしれませんが...)

質問文を見る限りご存知と思われますが、ディレクトリやファイルの書き込み・読み取り権限が適切に設定されていないと、sockファイルが生成されなかったり、読み込めなかったりしてシステムが動作しないことはありますよね。

他にも気になる点があったのでいくつか書き込んでみます。

vim /usr/share/nginx/html/current/tmp/sockets/.unicorn.sock で開くと
[Permission Denied]となり、中身をみることができません。

ご存知かもしれないのですがあえて書くと、
$ sudo vim ファイル名
もしくは
# sudo vim
で中身を確認できるはずです。

.unicorn.sock

どうでもよいことなのですが、sockファイル名の頭に.をつけるのは初めて見たので、純粋に違和感を感じました。


ブラウザからのアクセス自体はうまくできていますか?
少しだけ気になりました。

投稿2019/04/28 02:20

siruku6

総合スコア1382

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

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

koume

2019/04/28 02:36

回答有り難うございます。 中身はあまり気にすることはないとのことですので、今は気にしないことにします。 試しに # sudo vim /usr/share/・・・で開こうとしましたが、[Permission Denied]でした。 .unicorn.sockについては、参考にしたサイトでそうなっていたのでそうしただけで、特に意味はないと思います。 今、問題になっているのが、おっしゃる通り 403 Forbidden nginx/1.14.2 が発生して、ブラウザに表示できなくていろいろ調べています。メチャクチャはまっています。 # tail -f /var/log/nginx/error.logを見ると 2019/04/28 11:30:32 [error] 10831#10831: *9806 directory index of "/usr/share/nginx/html/current/public/" is forbidden, client: 74.82.47.5, server: XXXX-XXXX.com, request: "GET / HTTP/1.1", host: "XXX.XXX.XXX.XX" となってエラーが出ていますが、解決方法がわからずにいろいろためしています。 このエラーは難のエラーなのかもわかっていないのが現状です。
siruku6

2019/04/28 02:43

sockファイルは開けなかったんですね。 もしかしたら、他のプロセス(unicornかnginx)がopenしていてロックをかけているのかもしれませんね..。 https://stackoverflow.com/questions/19285355/nginx-403-error-directory-index-of-folder-is-forbidden こんな記事を見つけましたので、nginxの設定ファイルに問題がありそうです。 nginxの設定ファイルも合わせて質問文に掲載すると適切な回答がもらえるかもしれません。
koume

2019/04/28 03:02

回答ありがとうございました。 解決は出来ていませんが、回答をいただいた内容で再度、チェックし、質問させていただきます。 もし、回答がいただけるのであれば、お手数をおかけしますが、宜しくお願いします。
siruku6

2019/04/28 04:39

私もこのエラーは見たことがなかったのでお力になれるかわかりませんが、わかる範囲でお答えさせていただきますね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問