Nginx と Thin を使用して Rails アプリケーションを VDS にデプロイしました。Thin の起動を妨げるデフォルトで作成しない原因を追加shared_children.push "tmp/sockets"
する必要がありました。deploy.rb
cap deploy:setup
tmp/sockets
これにより、ディレクトリにshared_children.push "tmp/sockets"
作成されます。sockets
deploy_to/shared
Nginx ワーカー プロセスはnginxユーザーに代わって実行されますshared/sockets
が、 770のアクセス許可とapp1.deployers所有者がいます。これが、ソケット ファイル自体に777のアクセス許可があるにもかかわらず、nginx がソケット ファイルを読み書きできない理由です。
1.共有/ソケットのパーミッションを 777 に変更するか、nginx ユーザーを deployers グループに追加するか、nginx ユーザーの代わりに Thin をデプロイして実行するのが良いですか?
nginx ユーザーではなく、アプリごとに別のユーザーに代わって各アプリケーションを実行したいと思います。2. それは実際に理にかなっていますか?
ps
また、共有/ソケットの権限が正しくないために、誰かが /var/log/nginx/errors.log で権限拒否エラーを取得するという言及は見つかりませんでした。とてもシンプルで基本的なものが恋しいと思います。
同じサーバーにデプロイされているアプリケーションの数に関係なく、nginx または www-data ユーザーに代わってデプロイしているのかもしれません。