如何在 /root 目录中设置 Nginx 权限?

如何在 /root 目录中设置 Nginx 权限?

我想使用 Nginx 和 Gunicorn 在 Ubuntu 服务器上部署 Flask 应用程序。 我遵循了本教程

1).Gunicorn 配置一切正常。2).我创建了 /etc/systemd/system/myproject.service。它看起来像

[Unit]
Description=Gunicorn instance to serve myproject
After=network.target

[Service]
User=root
Group=www-data
WorkingDirectory=/root/myproject
Environment="PATH=/root/myproject/myprojectenv/bin"
ExecStart=/root/myproject/myprojectenv/bin/gunicorn --workers 3 --bind unix:myproject.sock -m 007 wsgi:app

[Install]
WantedBy=multi-user.target

3). 启动 myproject.service 后,它将在我的项目文件夹中创建 myproject.sock 文件,该文件位于/根路径且此文件有权限srwxrwx---

4). 我的/etc/nginx/sites-available/myproject文件外观

server {
    listen 80;
    server_name your_domain www.your_domain;

    location / {
        include proxy_params;
        proxy_pass http://unix:/root/myproject/myproject.sock;
    }
}

5). 重启 Nginx 后浏览器显示 403 Forbidden 错误。

6). Nginx 日志文件的样子查看日志文件连接上游时显示权限被拒绝。7).当我在 /tmp 文件夹中生成 .sock 文件时,它正在工作..... 但我想在 /root 目录中生成它

所以有人能帮我解决这个问题或者分享 Linux 权限相关的教程等吗?(提前谢谢了……)

答案1

首先,以 root 身份运行服务器风险很大,最好使用 为你的项目创建另一个系统用户useradd -r -U -s /usr/bin/nologin http。这将创建一个名为 http 的新系统用户并创建一个 http 组。

然后您可以使用chown -R :http /root/myproject/将拥有组更改为 http。

如果您的 nginx.conf 包含该语句,user http;您现在应该能够访问套接字。

另外,我建议创建并使用普通用户帐户。如果您需要 root 访问权限,则可以使用 su 或 sudo 来执行。

相关内容