django项目部署过程
django项目部署过程
1.上传代码
用git或者其他工具,如scp
代码上传后保证每个应用下的migrations文件夹里只有一个__init__.py文件,自己的迁移文件不要上传上来,具体的git的ignore文件配置如下
.idea *.log *.json *.jpg *.db *.pid **/migrations/* !**/migrations/__init__.py __pycache__/ *.crt *.key
在项目根目录下新建uwsgi.ini文件(和manage.py文件同级)
[uwsgi] #使用nginx连接时使用,Django程序所在服务器地址 socket=127.0.0.1:8000 #直接做web服务器使用,Django程序所在服务器地址 #http=0.0.0.1:8000 #项目目录 chdir=/home/ubuntu/usermanage #项目中wsgi.py文件的目录,相对于项目目录 wsgi-file=usermanage/wsgi.py # 进程数 processes=4 # 线程数 threads=2 # uwsgi服务器的角色 master=True # 存放进程编号的文件 pidfile=uwsgi.pid # 日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。我们以前的runserver是依赖终端的 daemonize=uwsgi.log # 指定依赖的虚拟环境 virtualenv=/home/ubuntu/.virtualenvs/usermanage
将相应的配置更改一下,然后上传到服务器
uwsgi的启动和停止
uwsgi --ini uwsgi.ini
uwsgi --stop uwsgi.pid
2.nginx配置
到这个文件夹下编辑nginx默认配置文件
sudo vim /etc/nginx/sites-available/default
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8000; } location /static { # 指定静态文件的存放目录 alias /home/ubuntu/usermanage/usermanage/static; } }
# 在开启一个服务 server { listen 5000; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8001; } location /static { # 指定静态文件的存放目录 alias /home/ubuntu/watchlive/watchlive/static; } }
nginx的启动与停止
/etc/init.d/nginx start
/etc/init.d/nginx stop