我设置了一个VPS(django + gunicorn + nginx)并且它正常显示默认的django屏幕,但在我更新了我的django代码并进行了所有迁移之后我认为现在我需要重新启动gunicorn来应用更改。 / p>
所以我这样做了:
sudo systemctl restart gunicorn
在此之后我得到Internal Server Error
一切都设置为here
gunicorn.service:
[Unit]
Description=gunicorn daemon
After=network.targett
[Service]
User=thekotik
Group=www-data
WorkingDirectory=/home/thekotik/glboy
ExecStart=/home/thekotik/glboy/denv/bin/gunicorn --workers 3 --bind unix:/home/thekotik/glboy/closer.sock closer.wsgi:application
[Install]
WantedBy=multi-user.target
答案 0 :(得分:0)
<class 'socket.error'>, [Errno 13] Permission denied: file: /usr/lib/python2.7/socket.py line: 228
unix socket文件拥有相同的unix文件权限;文件(/home/thekotik/glboy/closer.sock
)当前正在被引用error 13
的gunicorn进程用户使用或不归。{/ p>
我建议使用TCP选项--bind 127.0.0.1:8000
。对于基于tcp的更改,
<强> gunicorn.service 强>
[Unit]
Description=gunicorn daemon
After=network.targett
[Service]
User=thekotik
Group=www-data
WorkingDirectory=/home/thekotik/glboy
ExecStart=/home/thekotik/glboy/denv/bin/gunicorn --workers 3 --bind 127.0.0.1:9090 closer.wsgi:application
[Install]
WantedBy=multi-user.target
使用以上systemd服务文件为gunicorn&amp;将nginx中的代理选项更改为
proxy_pass http://127.0.0.1:9090$request_uri;
将避免基于unix socket文件的权限问题。