生产环境部署:Django+uWSGI+Nginx(来自明总的支持)
uWSGI的主要特点:
1.超快的性能
2.低内存占用(实测为apache2的mod_wsgi的一半左右)
3.多app管理(不用纠结用哪个端口好)
4.详尽的日志功能(可以用来分析app性能和瓶颈)
5.高度可定制(内存大小限制,服务一定次数后重启)
安装配置uwsgi:
1.pip install uwsgi
2.配置uWSGI,在项目中新建文件uWSGI.ini,编写如下配置
[uwsgi]
socket=外网ip:端口(使用nginx链接时,使用socket)
chdir=项目根目录
wsgi-file=项目中wsgi.py文件的目录,相对于项目根目录
processes=4 #进程
threads=2 #线程
master=True
pidfile=uwsgi.pid
daemonize=uwsgi.log
启动:uwsgi —ini uwsgi.ini
停止:uwsgi —stop uwsgi.pid
重启:uwsgi —reload uwsgi.pid
注意:使用http协议查看网站运行情况,运行正常,但是目前静态文件无法加载
安装Nginx:
sudo apt-get install nginx
进入到/etc/nginx目录下,找到sites-enabled目录下的default,进行相关配置:
在default文件中修改:
第一个地方:
第二个地方:
然后回到settings中添加:
在项目中的主目录下执行:
python3 manage.py collectstatic (目的是采集静态文件到static_root指定目录)
其中admin是后台管理时所需的静态资源(自动有),后面的文件夹就是我们自己需要使用的静态资源
启动Nginx:sudo nginx
启动uwsgi:uwsgi --ini uwsgi.ini
在浏览器输入你设置的服务器IP进行测试就OK了。