0
点赞
收藏
分享

微信扫一扫

Django之gunicorn部署

安装:

pip install gunicorn

 

启动应用:

gunicorn -w 3 -k gthread -e DJANGO_SETTINGS_MODULE=settings.prod Server.wsgi -b 0.0.0.0:8005


debug方式:
gunicorn -w 3 -k gthread -e DJANGO_SETTINGS_MODULE=settings.prod Server.wsgi -b 0.0.0.0:8005 --preload

 参数说明:

  -w : 启动线程数量

  -k:  指定线程类型

  -e: 指定环境变量

  -b: 绑定的地址和端口

 

注意点:

如果你的配置文件目录发生了变化, 需要修改wsgi.py文件  
然后启动的时候只需要执行wsgi

 

然后使用supervisor进行进程管理:

[program:server]
directory=/data/www/server/
command=/data/www/server/env/bin/gunicorn -w 3 -k gthread -e DJANGO_SETTINGS_MODULE=settings.prod Server.wsgi -b :8005
process_name=server-%(process_num)d
stdout_logfile=/var/log/supervisord/server_out.log ; stdout log path, NONE for none; default AUTO
stdout_logfile_maxbytes=100MB ; max # logfile bytes b4 rotation (default 50MB)
stdout_logfile_backups=5 ; # of stdout logfile backups (0 means none, default 10)
stderr_logfile=/var/log/supervisord/server_err.log ; stderr log path, NONE for none; default AUTO
stderr_logfile_maxbytes=100MB ; max # logfile bytes b4 rotation (default 50MB)
stderr_logfile_backups=5 ; # of stderr logfile backups (0 means none, default 10)

 

nginx配置:

server    {
listen 80;
server_name xxx.xxx.com;
access_log /data/logs/nginx/access_xxx.com_80.log access2 buffer=10k flush=5s;
error_log /data/logs/nginx/error_xxx.com_80.log warn;

location / {
proxy_pass http://127.0.0.1:8005;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location /astatic {
alias /data/www/server/astatic;
}

}

 

常见问题:

1.最近发现使用gunicorn方式部署的服务,间歇性出现服务不可用的问题, 怀疑是进程被堵塞住了

解决:

之前使用gthread , 现在打算使用gevent的方式来运行,异步模式


1.安装gevent库
pip install gevent

2.启动的时候指定方式-k gevent

 


举报

相关推荐

0 条评论