Centos 7上的Nginx权限问题,Systemd中有Gunicorn套接字

Centos 7上的Nginx权限问题,Systemd中有Gunicorn套接字,nginx,flask,centos,gunicorn,digital-ocean,Nginx,Flask,Centos,Gunicorn,Digital Ocean,我们已经搜索了无数个线程来解决这个问题,但似乎没有一个线程对我们有效。 有人能帮我解决这个nginx权限问题吗? 我已经按照本文中的建议使用非root用户安装了它 但是,我们无法访问套接字,也无法访问静态文件。 取自tail-f/var/log/nginx/error.log,它在访问套接字时总是产生502坏网关错误 *5 connect()到unix:/home/devops/article prod/article.sock失败(13:权限被拒绝) 并在访问静态文件时产生403禁止错误 *

我们已经搜索了无数个线程来解决这个问题,但似乎没有一个线程对我们有效。 有人能帮我解决这个nginx权限问题吗? 我已经按照本文中的建议使用非root用户安装了它

但是,我们无法访问套接字,也无法访问静态文件。

取自
tail-f/var/log/nginx/error.log
,它在访问套接字时总是产生502坏网关错误

*5 connect()到unix:/home/devops/article prod/article.sock失败(13:权限被拒绝)

并在访问静态文件时产生403禁止错误

*14 open()“/home/devops/article prod/assets/icons/types/article.png”失败(13:权限被拒绝)

这是我们的权限路径

/home/devops/article-prod/
/home/devops/article-prod/articles.sock
/home/devops/article-prod/assets
/home/devops/article-prod/assets/icons
/home/devops/article-prod/assets/icons/types
/home/devops/article-prod/assets/icons/types/article.png

drwxr-xr-x. 4 root root     34  Mar 15 03:57 home
drwxr-xr-x. 6 devops nginx  172 Mar 15 05:38 devops
drwxr-xr-x. 6 devops nginx  197 Mar 15 07:56 article-prod
srwxrwx---. 1 devops nginx    0 Mar 15 06:03 articles.sock
drwxr-xr-x. 3 devops nginx   19 Mar 15 04:56 assets
drwxr-xr-x. 4 devops nginx   36 Mar 15 04:56 icons
drwxr-xr-x. 2 devops nginx   25 Mar 15 04:56 types
-rwxr-xr-x. 1 devops nginx 1718 Mar 15 04:56 article.png
文件nginx.conf:

...
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
...
server {
    listen 80;
    server_name www.article.com;

    location /assets/ {
        root /home/devops/article-prod;
        autoindex on;
    }

    location / {
        proxy_pass http://unix:/home/devops/article-prod/articles.sock;
    }
}
...
文件articles.service:

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

[Service]
User=devops
Group=nginx
WorkingDirectory=/home/devops/article-prod
Environment="PATH=/home/devops/article-prod/venv/bin"
ExecStart=/home/devops/article-prod/venv/bin/gunicorn --workers 3 --bind unix:articles.sock -m 007 wsgi

[Install]
WantedBy=multi-user.target
我这样做也是为了确保devops用户在nginx组中

sudo usermod-a-G devops nginx

甚至相反

sudo usermod-a-G nginx devops

但还是不行


非常感谢您的帮助。

您是否尝试禁用SELINUX?通过运行以下命令检查您的SELINUX状态:

$ sudo sestatus
$ sudo setenforce 0
如果状态为“已启用”,则可以通过运行以下命令禁用它(临时):

$ sudo sestatus
$ sudo setenforce 0
并编辑文件
/etc/sysconfig/selinux
,然后将
selinux=exforcing
更改为
selinux=disabled
,以永久禁用它

如果需要,可以重新启动服务器


希望这将对您有所帮助

我不认为对特定安全相关问题的“解决方案”是只禁用整个主机的安全性。