部署Nginx+uwsgi运行Django
虽然直接使用Django作为开发环境也可以,但是为了能够模拟线上生产环境,还是搭建Nginx结合uWSGI来实现:
the web client <-> the web server <-> the socket <-> uwsgi <-> Django准备工作
启用virtualenv - 这里设置虚拟环境的名字是 venv ,也可以用其他名字
virtualenv venv
cd venv
source bin/activate安装Django到这虚拟环境
注意:我的实践案例是将Django的站点部署在
/home/huatai/works/mysite
pip install Django
cd ~/works
django-admin.py startproject mysite
cd mysiteuWSGI基本安装和配置
在虚拟环境安装uWSGI
pip install uwsgi安装nginx
注意:参考centos部署nginx php对于没有开启IPv6的系统,需要注释掉
nginx.conf中的#listen [::]:80 default_server;。注意:默认CentOS7开启了防火墙,需要增加端口访问:
配置nginx
/etc/nginx/conf.d/mysite_niginx.conf配置如下
部署静态文件
在运行nginx之前,还需要在static目录搜集所有Django静态文件,也就是编辑mysite/settings.py配置添加
上述配置是
STATIC_URL = '/static/'之后,也就是如下配置
然后运行
执行该命令之后,会自动在/home/huatai/works/mysite 下创建 static 子目录
运行Django
如果要简化启动时候参数传递,则在/home/huatai/works/mysite下增加mysite_uwsgi.ini配置(这里设置10个并发线程)
然后执行
重新启动nginx
此时,通过 http://example.com 或者主机的IP地址就可以访问到django的页面
参考
Last updated
Was this helpful?