LoginSignup
2
5

More than 5 years have passed since last update.

NginxとUnicornの連携でハマった所(On CentOS7)

Last updated at Posted at 2017-10-17

Railsアプリを公開する際に、設定でハマった箇所があったので、備忘録を残しておきます。

環境

アプリケーションを公開するにあたり、下記を使用しました。
- さくらインターネット VPS
- CentOS7を使用
- Rails:(5.0.1)
- Nginx:(1.10.3)
- Unicorn:(4.8.3)
- PostgreSQL:(9.2.18)

設定で参考にしたサイト

ハマったポイント

UnicornとNginxとを連携するためのソケットを/tmp配下に置くよう、サンプルではなっています。
ただし、CentOS7では/tmp配下で共有できないらしく、下記のエラーが発生する。

connect() to unix:/tmp/unicorn-example.socket failed (2: No such file or directory) while connecting to upstream

CentOS 7でNginx、Unicornにハマる

私は/var/run配下に変更しました。

色々と調べていて知ったこと

UNIX/INETドメインソケットについて

参考にしたQiita記事に従い *.sock を使用して連携していた。これをUNIXドメインソケットというらしい。
他の方法にINETドメインソケットがあり、指定したPort経由で連携する。
下記掲示板を見る限り、INETドメインソケットの方がトラブルが少ないよう。
Nginx で Unicorn起動時、白い画面にNot Found: / の表示 (Rails)

UNIXドメインソケット連携での動確

サイトにアクセスすればNginxのエラーかUnicornのエラーかの切り分けできると思うが、下記コマンドを使用してUnicornの動確ができる。

echo -e "GET / HTTP/1.0\n\n" | socat unix-connect:/tmp/unicorn.sock STDIO

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5