我使用Nginx和Thin将Rails应用程序部署到VDS。我必须将shared_children.push "tmp/sockets"
添加到deploy.rb
,因为cap deploy:setup
默认情况下不会创建tmp/sockets
,这会阻止Thin启动。
此shared_children.push "tmp/sockets"
在sockets
目录中创建deploy_to/shared
。
Nginx工作进程代表 nginx 用户运行,而shared/sockets
具有 770 权限和 app1.deployers 所有者。这就是为什么nginx无法读取/写入套接字文件,尽管套接字文件本身具有 777 权限。
1。什么是更好,将共享/套接字的权限更改为777或将nginx用户添加到部署者组,或者代表nginx用户部署和运行Thin?
我想代表非nginx用户运行每个应用程序,但为每个应用程序分别运行用户。的 2。这实际上是什么意思?
PS
此外,由于共享/套接字的权限不正确,我没有发现有人在/var/log/nginx/errors.log中获得权限被拒绝错误。我想我会想念一些非常简单和基本的东西。
无论有多少应用程序部署到同一台服务器,人们可能会代表nginx或www-data用户进行部署?