python Django部署
准备工作
- python环境(pip等)
- Django已经按照完成
- nginx安装
以上是基本的条件,如果没有安装,请安装完
开始工作
我们使用的是gunicorn+supervisor进行部署和进行进程管理
首先安装gunicorn
pip install gunicorn
gunincorn的基本用法
gunicorn -w 4 -b 0.0.0.0:8001 XXX.wsgi #XXX为你自己的项目的项目名
安装supervisor,supervisor是一个专门进行项目进程管理的插件
安装命令
pip install supervisor
我们首先要建立一个基本的配置目录
echo_supervisord_conf > /etc/supervisord.conf #生成默认的配置文件
在目录的最底部我们修改成,然后在相应的位置建立/etc/supervisor/conf.d/ 目录
[include]
files = /etc/supervisor/conf.d/*.conf
我们所有的配置文件都放到conf.d 目录下,在conf.d目录下建立testDjango。conf
[program:testDjango] #项目名
directory = /data/pyhontwww/pythonDjango/django1 ;项目目录地址
command=gunicorn -w4 -b0.0.0.0:8001 django1.wsgi ;启动项目命令
startsecs=0 ;启动0秒后没有异常退出
stopwaitsecs=0 ;等待0秒后没有异常退出
autostart=true ;在 supervisord 启动的时候也自动启动
autorestart=true ;程序异常退出后自动重启
supervisor的基本命令
supervisorctl start | stop | reatart 项目名
或者 all 启动全部
通过上面的命令 我们在8001上建立了一个项目,其实如果开启8001端口是可以在外网直接访问的,但是也可以用Nginx做映射
server {
listen 80;
server_name 你的服务名;
access_log /var/log/nginx/isaced.log;
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
这样我们就可以在80端口进行访问了
总结
我们用gunicorn+supervisor部署了Django系统,同时用Nginx进行了端口的映射