Django高级进阶[部署](1)大概

大概

一、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等,表示重要的部分

django服务器.png


什么是WEB 应用以及WEB 发展史

最早.png
发展.png
现在.png


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服务器,这样可以达到很好的客户端响应

关系

请求


你可能感兴趣的:(Django高级进阶[部署](1)大概)