uvicorn使用supervisor部署。
app@app:~/report$ ls /etc/supervisor
conf.d supervisord.conf
app@app:~/report$ ls /etc/supervisor/conf.d
uvicorn-pz.conf
app@app:~/report$
uvicorn-pz.conf使用ls做软连接,文件放在django项目文件夹。
譬如: sudo ln -s /home/app/report/uvicorn-pz.conf
1、uvicorn的program写法:
[fcgi-program:uvicorn]
socket=unix:///tmp/uvicorn.sock
command=/home/app/report/venv/bin/uvicorn --fd 0 share_report.asgi:application
numprocs=4
directory=/home/app/report/
process_name=uvicorn-%(process_num)d
stdout_logfile=/home/app/logs/pz.log
stdout_logfile_maxbytes=0
user=www-data
注意 user字段,使用www-data与nginx用户一致,否则会导致nginx连接被拒绝。若不填user,uvicorn每次重启,默认此sock为root,然后nginx就显示502错误。
另外需要注意,后缀使用.conf,不再用.ini
proxmox虚拟机分配了4个核,numprocs就写4 .
2、nginx增加conf文件:
server {
listen 80;
client_max_body_size 64m;
server_name 10.101.0.204;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
proxy_buffering off;
proxy_pass http://uvicorn;
}
location /static {
# path for static files
root /home/app/report;
}
}
upstream uvicorn {
server unix:///tmp/uvicorn.sock;
}
prixt_pass 照抄,不要改。
/static部分,“/home/app/report”不需要再加static,否则url会出现两个static。
3、Minio server的配置
参考How to Set Up an Object Storage Server Using Minio on Ubuntu 16.04
注意,minio.service文件
raw文本打不开,但是可以打开其显示文本。