node.js – Node Express Unix域套接字权限

我正在运行一个Nginx服务器和一个节点表达web服务器,使用daemontools,setup通过Unix Domain Sockets进行通信.只有一些问题:

>套接文件关闭时保持存在,因此我必须在重新启动服务器时将其删除,否则我将收到EADDRINUSE错误.
> Nginx服务器作为Nginx用户运行,节点服务器作为节点用户运行.
>当服务器启动时,套接文件由Express创建,umask将套接文件的权限设置为755.
> setuidgid应用程序将组设置为用户的默认组,在这种情况下都是节点用户名.
>应用程序和daemontools运行脚本的部署脚本在节点服务器实例启动之前执行,因此无法设置文件的权限,因为必须在启动过程中重新创建.

如果我chgrp和chmod g w套接文件,一切正常.有没有办法设置它,以便生成节点应用程序的套接文件,并使用正确的权限让Nginx能够在不损害一个应用程序或另一个应用程序的安全独立性的情况下写入它?我甚至可以将Nginx添加到节点用户的组中,如果还有一种方法可以设置套接文件的权限,那么它就可以组写了.

最佳答案
也许我来不及了.

作为您自己答案的补充,有一个解决方案,不必将Nginx用户添加到节点组.

仅为套接文件创建目录,将其分配给节点用户和www-data(或Nginx所属的任何组)组,并在该目录上设置group-id位(SGID).

mkdir -p /var/lib/yourapp/socket
chown nodeuser:Nginxgroup /var/lib/yourapp/socket
chmod g+rxs /var/lib/yourapp/socket

在此目录中创建的所有文件自动Nginxgroup组所有.

相关文章

一、Linux下Nginx的安装 1.去官网 http://nginx.org/download/下载对应的Nginx安装包,推荐使...
一、空格:默认匹配、普通匹配 location / { root /home; } 二、= :精确匹配(表示匹配到 /home/resou...
``` nginx -c 配置文件路径 ``` ``` /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.con...
前言 nginx可所谓是如今最好用的软件级别的负载均衡了。通过nginx的高性能,并发能力强,占用内存下的特...
1.ngnix概念 Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄...
博客园从今天上午就开始报502错误 , 他的原因还不知道 , 暂时先说下我们遇到502的排查情况 最大的可能性...