在实际工程实践中,需要将所构建的项目部署在云端服务器上。本文以虚拟机为例,在ubuntu16.4系统上部署django项目,所用项目为前期搭建的在线考试系统。
关注公众号,回复“在线考试”获取开源代码链接!
/1/功能介绍
(1)uwsgi:一是一个web服务器,也可以当做中间件;
(2)nginx:常用高性能代理服务器;
工作流程为:
(1)首先客户端请求服务资源,nginx作为直接对外的服务接口,接收到客户端发送过来的http请求,会解包、分析;
(2)如果是静态文件请求就根据nginx配置的静态文件目录,返回请求的资源,如果是动态的请求,nginx就通过配置文件,将请求传递给uWSGI;
(3)uWSGI 将接收到的包进行处理,并转发给wsgi,wsgi根据请求调用django工程的某个文件或函数,处理完后django将返回值交给wsgi,wsgi将返回值进行打包,转发给uWSGI,uWSGI接收后转发给nginx,nginx最终将返回值返回给客户端(浏览器或APP)。
/2/虚拟机安装和静态IP配置
虚拟机的安装网上有很多成熟的例子,需要VMware软件和Ubuntu系统安装文件,安装结果如图:
image
为了能模拟服务器部署,需要对其网络进行配置。
虚拟机网络模式有三种:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)。
选择NAT方式连入互联网的话,那么虚拟机的IP地址非配,网关以及互联网访问权限均由VMWare提供的叫做VMnet8虚拟网卡所提供。通VMnet8虚拟网卡,主机可以访问虚拟机的IP,虚拟机可以连入主机的互联网连接连入外网。
VMWare Workstation已经启用VMnet8虚拟网卡,在主机系统中设置IP:
image
image
在VMWare主界面,点击编辑>虚拟网络编辑器菜单进入虚拟网卡参数设置界面,选择VMnet8条目,点击NAT Settings按钮后可以看到我们的VMWare Workstation为NAT连接的虚拟机设定的默认网关。
image
在虚拟机上设置IP:
image
这样就可以用独立的IP在虚拟机和主机之间进行通信了,虚拟机也可以连互联网了。
/3/配置环境
(1)安装虚拟环境
ubuntu中默认安装Python2.7和Python3.5,在这里使用3.5。为方便环境配置,首先安装虚拟环境:
当然如果出现权限问题,sudo就好:
image
apt-get install python3-venv
在你建立的目录下:
python3 -m venv ven(虚拟环境名)
在生成ven/binwen目录下启动虚拟环境:
source activate
安装项目所需包,requirement.txt:
sudo apt-get install pip3
pip3 install -r requirement.txt
(2)安装uwsgi
sudo apt-get install python3-setuptoolssudo apt-get install python3-devpip3 install uwsgi
(3)安装Nginx
sudo apt-get update
sudo apt-get install nginx
(4)安装mysql并导入数据库
安装mysql:
sudo apt-get install mysql-server mysql-client
安装过程中会出现叫你输入密码,这个密码一定要记住!
image
完成后进入数据库:
mysql -u root -p
建立数据库:
create database onlinetestbc1;
选择数据库:
use onlinetestbc1;
导入SQL文件:
source onlinetestbc1.sql;
image
查看最终结果:
image
(5)配置
在项目目录新建uwsgi.ini文件:
[uwsgi]chdir = /你的路径/项目module = 项目名称.wsgimaster = trueprocesses = 10socket = :8000vacuum = true
新建nginx.conf文件
[uwsgi]
chdir = /你的路径/项目
module = 项目名称.wsgi
master = true
processes = 10
socket = :8000
vacuum = true
pythonpath = /你的虚拟环境的路径/lib/python3.5/site-packages/
daemonize = /路径/项目/run.log
disable-logging = true
链接到uwsgi的启动配置文件中
ln -s /你的目录/项目/nginx.conf /etc/nginx/conf.d/
新建run.log文件
修改setting.py文件:
DEBUG = False
ALLOWED_HOSTS = [‘192.168.23.130’]
配置完成重启Nginx
service nginx restart
进入项目目录下,开启uwsgi:
uwsgi -i uwsgi.ini
image
/3/最终结果
主机浏览器输入192.168.23.130/login/,结果如图:
image
至此,django项目在ubuntu系统上的部署完成了。
关注公众号,送海量学习资源,一起学django~
image1024程序开发者社区的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里就技术问题进行交流,还没有加入的小伙伴可以扫描下方“社区物业”二维码,让管理员帮忙拉进群,期待大家的加入。
image//猜你喜欢//
网友评论