Nginx 文档根所有者

Nginx 文档根所有者

我正在使用 Nginx + Gunicorn 设置一个 django web 应用程序。我还在使用基于 CentOS 发行版的 Amazon Linux 实例。假设 Nginx 以 nginx 用户身份运行,那么文档根文件夹的最佳做法是什么?现在我创建了由 root 拥有的 /var/www/myapp 文件夹。但我认为文件上传将不起作用,例如因为 nginx 无法在该文件夹中创建文件。将所有权授予 nginx 用户是否足够?

答案1

真正的问题是哪个用户在运行 Gunicorn。
为了简化一切,您可以让整个 /var/www/myapp 文件夹(以及文件+子文件夹)归 gunicorn 用户所有。
或者所有内容都可以归第三个用户所有,只有特定文件夹归“gunicorn”所有。这些文件夹将用于上传、缓存等。开发人员应该知道哪些文件夹需要可写。

答案2

我通常在 Debian 中使用“www-data”用户,但我认为 CentOS 有一个“apache”用户。您可以始终使用该用户,或者创建“www-data”或“nginx”。

(注意:在下面的例子中,www-user 可以是您选择设置的任何用户)。

  1. 在 nginx conf 中设置用户

    用户 www-user www-user; ## 默认值:nobody

  2. 将 www 根的所有者更新为您的 www 用户(并确保 www 用户具有您的网站所需的读/写权限)。

相关内容