django 是 python 开源的 web 框架 ,django 本身运行后也是一个轻量级的服务器,可以满足本地的测试,生产环境中的 大量访问, 一般和Nginx 和 apache 结合。下面以 Django 与Nginx 结合为例进行部署
1、 部署环境
操作系统:Ubuntu 16.04.2
2、部署原理
client----》Nginx ----》socket----》uwsgi----》Django
3、安装步骤
3.1 安装 Nginx
apt-get install Nginx
systemctl start Nginx
测试 Nginx
3.2 安装uwsgi
pip install uwsgi
在opt 下面创建 test.py 测试uwsgi 是否正常安装
#!/usr/bin/envpython defapplication(env,start_response): start_response('200OK',[('Content-Type','text/html')]) return["HelloWorld"]
测试 :
uwsgi --http:8000 --wsgi-file test.py
访问 ip:8000,uwsgi 测试成功
3.3 Nginx+uwsgi+django
上传 django 项目至OurCMDB
创建OurCMDB_uwsgi.ini 配置文件
#OurCMDB_uwsgi.ini [uwsgi] #Django-relatedsettings socket=:8000#socket监听端口,对应下文Nginx配置文件uwsgi_pass监听的端口号 #thebasedirectory(fullpath) chdir=/opt/OurCMDB/#项目目录 #Djangoswsgifile module=OurCMDB.wsgi#wsgi.py创建django项目时已经生成目录/opt/OurCMDB/OurCMDB/wsgi.py #process-relatedsettings #master master=true #maximumnumberofworkerprocesses processes=4# #...withappropriatepermissions-maybeneeded #chmod-socket=664 #clearenvironmentonexit vacuum=true
查看项目下面的文件
cat /etc/Nginx/sites-available/OurCMDB_Nginx.conf
server{ listen8010; server_name_; charsetUTF-8; access_log/var/log/Nginx/OurCMDB_access.log; error_log/var/log/Nginx/OurCMDB_error.log; client_max_body_size75M; location/{ includeuwsgi_params; uwsgi_pass127.0.0.1:8000;# uwsgi_read_timeout2; } location/static{ expires30d; autoindexon; add_headerCache-Controlprivate; alias/opt/OurCMDB/static/; } }
创建 软连接 ln -s OurCMDB_Nginx.conf ../sites-enabled/OurCMDB_Nginx.conf
启动
uwsgi --ini OurCMDB_uwsgi.ini
启动Nginx
访问测试 django