大概
一、Nginx+uWSGI+Django部署生产环境
- 原理
- 为什么还要Nginx
- 常见的Python HTTP服务器
- 什么是WEB 应用以及WEB 发展史
- 什么是WSGI?
- 哪些框架自带了WSGI Server
- 概念总结
- 特别注意WSGI/uwsgi/uWSGI这三个概念的区别
二、部署
- 1. 通过ssh连接你的远程服务器
- 2. 检查和更新系统软件
- 3. 安装pip3
- 4. 创建虚拟环境(安装相关的python包)
- 5. 安装Nginx
- 6.上传项目
- 7. 安装 uwsgi
- 8. 测试uwsgi
- 9. 静态文件配置(可以先跳过,进行下一步配置nginx)
- 10. 配置nginx
- 10.1 在项目目录下面新建一个文件夹conf,用于存放一些我们的配置文件
- 10.2 创建一个配置文件test1_nginx.conf
- 10.3 将配置文件加入到nginx的启动配置文件中(当然你也可以把文件直接拷贝进去)
- 10.4 重启nginx
- 10.5 拉取所有需要的static file到同一个目录
- 11. 配置uwsgi
- 11.1 新建uwsgi配置文件叫uwsgi.ini文件(我们依旧保存到conf目录下面)
- 12. 拉起项目
- 生产环境:部署在服务器上,用于给用户提供服务的环境。
DeBug=False
一、Nginx+uWSGI+Django部署生产环境
- Django有个runserver直接起了一个WebServer,为什么还要Nginx起一个WebServer?
- Nginx的 性能 比Django自带的WebServer要 好
- 我们用Python写的程序(Django是Python写的),想要被WEB访问是不是还要有一个Python写的WEB Server? 就拿Nginx举例他是什么写的?C写的,代码上不同
常见的Python HTTP服务器
(自行百度)
类似
核心
,马达
,cpu
等,表示重要的部分
什么是WEB 应用以及WEB 发展史
WSGI
WSGI ,全称 Web Server Gateway Interface,或者Python Web Server Gateway Interface,是为Python语言定义的Web服务器和Web 应用程序或者框架之间的一种简单接口.自从WSGI被开发出来以后,许多其他语言中也出现类似接口
- WSGI就是一种标准.譬如,一个德国人和一个法国人聊天,他们要想聊天可以通过过一个标准的国际语言:英语~
哪些框架自带了WSGI Server
很多框架都自带了WSGI Server,比如Flask,webpy,Django,CherryPy等等.当然 性能都不好,都不行 ,自带的web server 更多的时候是我们 测试 的时候使用,发布时则使用生产环境的WSGI server或者联合nginx 做 uwsgi
概念总结
WSGI是一种Web服务器网关接口 .它是一个Web服务器(如Nginx)与应用服务器(uWSGI服务器)通信的一种规范.
uWSGI是一个Web服务器 ,它实现了WSGI协议、uwsgi、http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换
-
特别注意WSGI/uwsgi/uWSGI这三个概念的区别
1. WSGI我们已经清楚是一种通信协议 2. uwsgi同WSGI一样是一种通信协议 3. 而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器
为什么有了uWSGI还需要Nginx?因为Nginx具备优秀的静态内容处理能力,然后将动态内容转发给uWSGI服务器,这样可以达到很好的客户端响应