部署前推荐先安装虚拟环境,可以参考作者的《python虚拟环境安装与配置》
导出环境:
pip freeze>pip.txt
安装环境:
pip install -r pip.txt
更改settings.py
DEBUG = False
ALLOW_HOSTS=[‘*’]
pip install uwsgi
配置uwsgi,在项目中(即manage.py目录下)新建文件uwsgi.ini编写内容如下:
[uwsgi]
socket=外网ip:端口(使用nginx连接时,使用socket)
http=外网ip:端口(直接做web服务器,使用http)
chdir=项目根目录
wsgi-file=项目中wsgi.py文件的目录,相对于项目根目录
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=uswgi.log
启动:uwsgi --ini uwsgi.ini
停止:uwsgi --stop uwsgi.pid
重启:uwsgi --reload uwsgi.pid
安装命令:
sudo apt-get install nginx
配置nginx:
修改ect/nginx/sites-enabled/default文件
listen IP地址:80 default_server;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
#注释掉下面的一行
#try_files $uri $uri/ =404;
#添加下面的内容
include uwsgi_params;
uwsgi_pass IP地址:8000;
}
#添加下面的内容
location /static {
alias /var/www/项目名称/static/;
}
启动:sudo service nginx start
停止:sudo service nginx stop
在根目录下的var/www/创建与自己项目名称相同的文件夹
项目名称/static
修改权限
sudo chmod 777 static
收集所有静态文件到static_root指定目录:
python manage.py collectstatic
重启nginx、uwsgi