主要自己是自学,想着自己学过django,学过自己的项目,却没有自己将其部署到服务器上过,对这部分一脸懵逼。所以假期自己了解且部署了,做个思路记录吧,具体操作有太多博客了。
一、环境搭建
1、一般是云服务器,先系统更新,可以把镜像调整到国内的镜像,应该要快一点点。
2、我的python版本是3.X的,就在系统上安装python3.X的版本,并调整相应的软连接,pip3等。
二、项目转移
1、把项目从自己的电脑转移到服务器上,有很多方式啦,可以用git,也可以用比较简单的WinSCP,直接转移上去。
2、因为是自己编写,使用的django自带的sqlite3数据库,centos7系统自带,如果不匹配,需要更新sqlite3版本。
三、开始部署
1、了解清楚django、uWSGI、nginx各自的功能点。
(1)、django是项目的主体,其自身是带有一个简单开发服务器的,不过不适用于正常的运行环境,既然都部署到云服务器了,怎么能还用这个呢?不过上传到服务器后,调整配置文件后,可以先使用该服务器测试一下,django的相关依赖的第三方库以及版本是否正确,如果可以正常运行,django部分就算ok了。
(2)、uWSGI部分,wsgi规定了python web应用和python web服务器之间的通讯方式,uWSGI是实现了uwsgi协议、http协议,遵循了wsgi规范的一个软件,在我理解,一个是指导理论,一个是结合实际情况的操作方式,一个就是具体实现的工具。
安装好uWSGI后,可以找相应的中文文档,了解一下,或者直接写好相应的配置文件,使用云服务器要使用其相应的内网地址,而不能直接是127.0.0.1;需要设置socker项和等下的nginx配置对应。然后启动即可。
其实通过uWSGI可以直接作为服务器运行django项目,配置好相应的http即可,但根据网上看,主要是uWSGI对应静态文件支持不太好,比较慢,所以我们使用下面的nginx作为静态文件的代理,还有其反向代理。
(3)、nginx安装好后,复制一份其原来的配置文件作备份,对其配置文件进行修改,因为只是简单部署,需要修改的点不多。主要集中在服务部分,第一个将不是静态文件的部分转移到uWSGI的socket,不作相应的处理。对于静态文件处理,定义相应的绝对地址到在服务器上的静态文件地址即可,一般我们django项目的静态文件分散在各个app下的static文件中,可以通过运行python3 manage.py collectstatic 将静态文件收集到一个固定目录。然后启动nginx。
(4)、应该说简单的django+uWSGI+nginxginx就部署完成了,由nginx完成静态文件部分,非静态文件部分由nginx代理,uWSGI服务器完成。
没有具体的操作,春节在家,通过各种博客、资料完成了简单的部署,从最开始的一脸茫然到最后成功,还是很有收获感的。也算是自我学习吧。有点恨自己没有在大学期间了解这些东西,还是荒废了不少时间呀。
ho