发布时间:2019/02/10 17:32:44   更新时间:2020/07/31 19:50:36
这里谈谈django部署的要点。
安装
apt-get install nginx
常用命令:
*启动
service nginx start
*停止
nginx -s stop
*重载配置文件
nginx -s reload
*重启
service nginx restart
*编译器版本和配置参数
nginx –v
nginx –V
*查看
whereis nginx
ps –aux | grep nginx
netstat –apn | grep 80
nginx –h
*配置
nginx的配置文件的读写顺序问题:nginx的配置文件是/etc/nginx/nginx.conf,这个配置文件中又引用了/etc/nginx/conf.d/和/etc/nginx/sites-enabled/这两个文件夹的配置文件,通过include来实现。所以,无论是直接在nginx.conf或者在conf.d、sites-enabled中配置都是可以的。
*检验是否配置文件合法
nginx –t
安装:
pip install gunicorn
官网:
http://docs.gunicorn.org/en/stable/
常用命令:
*查看:
ps aux | grep gunicorn
*停止:
pkill gunicorn
*常用启动参数:
--reload 自动加载python文件变更
--workers 3 进程数,一般是cpu数*2+1 ,
cpu数这样看:python -c 'import multiprocessing;print(multiprocessing.cpu_count())'
--threads 1 单个进程开的线程数,这个设置只对进程工作方式为Gthread的产生影响。
--worker-class 异步选择,可以使用eventlet、gevent、tornado、gthread、giohttp
--bind 绑定ip和端口
--access-logfile 接入日志
--error-logfile 错误日志
--log-level debug 日志等级
--chdir 启动文件目录
我建议用gunicorn,因为uwsgi太复杂,应付那个复杂的精力可以做很多事情。
使用python的初衷就是简单高效,太复杂的东西,有点背离这个初衷了。
gevent相对较为完整。在django项目中建议用gevent。
在flask用socketio的项目中,才建议用eventlet。
编辑配置
vi /etc/crontab
在最后一行添加内容。
crontab文件的基本格式:
minute hour day month weekday username command
#表示每一分钟执行备份
*/1 * * * * root /home/xxx.sh
#表示每天凌晨23点00执行备份
0 23 * * * root /home/xxx.sh
注意xxx.sh的执行权限。
查看状态
cd etc
在etc目录下,执行 crontab -e
在插入模式下输入 0 1 * * * root /home/xxx.sh
这样才能使用如下命令查看状态。
crontab -l
这个东东到现在为止只支持python2,不建议使用。进程出错拉起可以自己写个脚本简单实现。
业务量大了可以考虑用。