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