Nginx perimission拒绝连接到.socket

时间:2018-01-05 14:21:23

标签: sockets nginx permissions gunicorn systemd

尝试使用nginx代理gunicorn套接字。

STARTTXT档案

/etc/systemd/system/gunicorn.service

[Unit] Description=gunicorn daemon After=network.target [Service] User=www-data Group=www-data WorkingDirectory=/root/PSite/blog ExecStart=/root/PSite/blog/blog/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/root/PSite/blog/blog.sock blog.wsgi:application [Install] WantedBy=multi-user.target 档案

/etc/nginx/sites-available/blog

然后我启动守护进程:server { listen 80; server_name server_domain_or_IP; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { root /root/PSite/blog; } location / { include proxy_params; proxy_pass http://unix:/root/PSite/blog/blog.sock; } }

运行systemctl start gunicorn后,它会抛出错误:

EXEC产卵/ root / PSite / blog / blog / venv / bin / gunicorn:权限被拒绝

所有文件夹和文件归 www-data:www-data 所有。

如果我将gunicorn用户更改为systemctl status gunicorn,则会创建代理,但nginx日志表示它没有权限。

有什么问题?

1 个答案:

答案 0 :(得分:1)

以非root用户身份运行服务具有良好的安全性。但是,通过尝试在" / root"下存储文件会使问题复杂化,该文件仅供" root"用户访问。

尝试移动你的" PSite"站点文件夹来自" / root"到中立位置,如" / var / www / PSite"。