1.介绍
django的 python manage.py runserver 只适合测试环境,真正部署不合适,所以web服务器用uWSGI,代理服务器用nginx.
- uWSGI:uWSGI是实现了WSGI通信协议,uwsgi线路协议(常用于在uWSGI服务器与其他网络服务器的数据通信)两种协议的web服务器,在这里的作用是接收nginx传来的请求给web应用
- nginx:nginx是一种代理服务器,有正向代理和反向代理两种方式,在这里是反向代理,将客户端的请求转发给uwsgi,且nginx性能及其优秀,能处理上万的并发(没有实际测试过).
2.配置
所选服务器
我部署所用的服务器是阿里云免费试用一个月的ECS云服务器(CPU1核,内存1G,
带宽1M,系统盘40G),操作系统是CentOS7.6 64位.
项目环境安装和配置
- 用Xshell连接上服务器后,首先便是项目环境依赖的配置.服务器自带的pyhton2.7显然不合要求,我们只能自己安装python3.x.
- 安装并创建虚拟环境
- 安装Mysql5.7(最好5.5以上版本,django2.1不再支持5.5)
- 下载uwsgi并安装
pip install uwsgi
, 注意uwsgi需要安装两次,系统内和虚拟环境内各安装一次.
给uwsgi建立软链接,方便使用
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
- 接下来是项目上传到服务器,有很多方法,这里我是直接从github上克隆到本地,进入虚拟环境后,安装项目依赖包
pip install -r requirements.txt
,如果没有requirements.txt记得在你原项目的虚拟环境下导出安装目录