尝试使用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日志表示它没有权限。
有什么问题?
答案 0 :(得分:1)
以非root用户身份运行服务具有良好的安全性。但是,通过尝试在" / root"下存储文件会使问题复杂化,该文件仅供" root"用户访问。
尝试移动你的" PSite"站点文件夹来自" / root"到中立位置,如" / var / www / PSite"。