如何设置 Nginx unix 套接字的所有者和访问模式?

如何设置 Nginx unix 套接字的所有者和访问模式?

我正在用 运行 nginx listen unix:/tmp/foo.sock;

不幸的是,该套接字由 root 拥有,并且是全世界可写/可读的: srw-rw-rw- 1 root root 0 Apr 11 00:37 /tmp/foo.sock

虽然我希望它由 nginx 用户拥有(www-data例如)并具有模式srw-rw----

我没有找到任何相关内容在 nginx 文档中。Google 只告诉我有关后端套接字(例如 php-fpm)的信息。

答案1

由于它是文件系统上的一个对象,因此我会使用标准文件系统工具。我不确定这是否可行,但至少值得一试。您应该决定文件权限,这只是一个例子 - 所有者和组完全读/写访问权限似乎很合理,不确定是否也需要执行,即 770。

chown nginx:www-data /tmp/foo.sock
chmod 660 /tmp/foo.sock

当您尝试新事物时,备份是您的好朋友。

答案2

最近我把 nginx 套接字放到了一个“私有”目录中。这样 nginx 本身和属于 nginx 组的用户都可以使用该套接字。

相关内容