生产环境部署:Django+uWSGI+Nginx(来自明总的支持)

生产环境部署: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,进行相关配置:

生产环境部署:Django+uWSGI+Nginx(来自明总的支持)

在default文件中修改:

第一个地方:

生产环境部署:Django+uWSGI+Nginx(来自明总的支持)

第二个地方:

生产环境部署:Django+uWSGI+Nginx(来自明总的支持)

然后回到settings中添加:

生产环境部署:Django+uWSGI+Nginx(来自明总的支持)


在项目中的主目录下执行:

python3 manage.py collectstatic (目的是采集静态文件到static_root指定目录)

生产环境部署:Django+uWSGI+Nginx(来自明总的支持)

其中admin是后台管理时所需的静态资源(自动有),后面的文件夹就是我们自己需要使用的静态资源


启动Nginx:sudo nginx

启动uwsgi:uwsgi --ini uwsgi.ini

在浏览器输入你设置的服务器IP进行测试就OK了。