1.一些重要概念

https://www.cnblogs.com/xiaonq/p/8932266.html

1.1web容器

  • 什么是web容器

    1.web容器是帮助我们部署java丶php丶python丶vue等项目的
  • 作用(处理请求,返回数据)

    1.第一,帮助django服务端处理客户端连接,官方号称可以处理10万(实现高并发)

    2.第二,帮助处理静态资源请求(html、css、JS),返回给客户端浏览器(django等web服务器处理静态资源能力差)

    *常见web容器

    1.nginx(python、php)

LNMP

  *L : linux
*N : nginx
*M : mysql
*P : php `apache(php)`

LAMP

  *L : linux
*A : apache
*M : mysql
*P : php `3.Tomcat(JAVE)`

1.2 什么是WSGI(web协议)

*1.WSGI是一种 python专用 的web协议 和http类似

*2.WSGI实质:WSGI是一种描述web服务器(如 nginx,uWSGI web服务器 )如何与 web框架 (如用Django、Flask框架写的程序)通信的规范、协议

*3.WSGI定义了使用 python编写的web app(django)与web server(uWSGI)之间接口格式

为什么需要web协议

  *1)不同的框架有不同的开发方式,但是无论如何,开发出的 应用程序(django)都要和服务器 (nginx)程序配合 ,才能为用户提供服务。
*2) 这样, 服务器程序(nginx) 就需要为不同的框架提供不同的支持,只有支持它的服务器才能被开发出的应用使用,显然这是不可行的。
*3)web协议本质:就是定义了 Web服务器和Web应用程序或框架之间的一种简单而通用的接口规范 。

1.3 uWSGI (web服务器 和nginx类似)

  *什么是uWSGI: uWSGI是一个全功能的HTTP服务器,实现了 WSGI协议 、 uwsgi协议 、 http协议等
*uWSGI作用:它要做的就是把HTTP协议转化成语言支持的网络协议,比如把 HTTP协议转化成WSGI 协议,让Python可以直接使用 。
*uWSGI特点:轻量级,易部署,性能比nginx差很多,支持多种协议

1.4 Nginx

  *Nginx是一个Web服务器,其中的HTTP服务器功能和 uWSGI功能很类似
*但是Nginx还可以用作更多用途,比如最常用的 反向代理、负载均衡、拦截攻击 等,而且 性能极高
*单台nginx号称可以处理10万并发

1.5 Django

  *Django是一个Web框架,框架的作用在于处理request和 reponse,其他的不是框架所关心的内容。
*所以如何部署Django不是Django所需要关心的。

2.nginx+uwsgi+django部署各模块作用

2.1 Django + Uwsgi + Nginx方案

1.请求处理整体流程

  *nginx接收到浏览器发送过来的http请求,将包进行解析,分析url
1.静态文件请求: 就直接访问用户给nginx配置的静态文件目录 (html/css/js/图片) ,直接返回用户请求的静态文件
2.动态接口请求: 那么nginx就将请求转发给uWSGI,最后到达django处理

2.各模块作用

  *nginx :是对外的服务器,外部浏览器通过url访问nginx,nginx主要处理静态请求(html/css/js/图片)
*uWSGI :是对内的服务器,主要用来 处理动态请求 。(从mysql、redis、es等中动态查询到的数据)
*uwsgi :是一种web协议,接收到请求之后将包进行处理,处理成wsgi可以接受的格式,并发给wsgi
*wsgi :是python专用的web协议,根据请求调用应用程序(django)的某个文件,某个文件的某个函数
*django :是真正干活的,查询数据等资源,把处理的结果再次返回给WSGI, WSGI 将返回值进行打包,打包成uwsgi能够接收的格式
*uwsgi :接收wsgi发送的请求,并转发给nginx,nginx最终将返回值返回给浏览器

2.2Django + uWSGI方案特点

*没有nginx而只有uwsgi的服务器,则是Internet请求直接由uwsgi处理,并反馈到web项目中。

*nginx可以实现安全过滤,防DDOS等保护安全的操作,并且如果配置了多台服务器,nginx可以保证服务器的负载相对均衡。

*而uwsgi则是一个web服务器,实现了WSGI协议(Web Server Gateway Interface),http协议等,它可以接收和处理请求,发出响应等。

所以只用uwsgi也是可以的。

2.3nginx和uWSGI特点

  1.nginx的作用
反向代理,可以拦截一些web攻击,保护后端的web服务器
负载均衡,根据轮询算法,分配请求到多节点web服务器
缓存静态资源,加快访问速度,释放web服务器的内存占用,专项专用

  2.uWSGI的适用
单节点服务器的简易部署
轻量级,好部署

nginx,wsgi项目部署的更多相关文章

  1. 阿里云安装Nginx+vue项目部署

    阿里云安装Nginx+vue项目部署 nginx安装包下载 http://nginx.org/en/download.html nginx安装 首先先安装PCRE pcre-devel 和Zlib,因 ...

  2. django+nginx+uwsgi 项目部署

    Django虽然自带一个Server,但只能作为开发时测试使用,我们需要一个可以稳定而持续的服务器对网站进行部署,比如Apache, Nginx, lighttpd等,本篇将利用nginx和uWSGI ...

  3. Django之nginx+wsgi后台部署(最新版)

    0-部署准备 1.要使用安全组打开腾讯云的80端口 腾讯云的80端口不能访问​www.jianshu.com 以实际项目部署为例 项目名称api_learn: Python版本:python 3.6. ...

  4. nginx+gunicorn项目部署

    1.1安装虚拟环境 创建文件夹 mkdir data 目录文件夹 cd data 进入data文件夹 mkdir nginx 创建安装nginx的文件夹 mkdir server 存放代码的文件夹 m ...

  5. Gunicorn+Nginx+Flask项目部署

    安装python3.6 1)前往用户根目录 >: cd ~ 2)下载 或 上传 Python3.6.7 >: wget https://www.python.org/ftp/python/ ...

  6. 基于腾讯云CentOS7.4+MySQL5.7+Python3+uwsgi+nginx的Django项目部署

    准备知识 1.django一个基于python的开源web框架,请确保自己熟悉它的框架目录结构. 2.uWSGI一个基于自有的uwsgi协议.wsgi协议和http服务协议的web网关 3.nginx ...

  7. CentOS 下用 Nginx 和 uwsgi 部署 flask 项目

    前几天利用flask 写了几个调用salt-api 的接口,需要上线到正式环境,搜了一下 都是 用 nginx + uwsgi 来部署,这里记录下关键的配置项. 1.首先将代码上传到服务器上目录为: ...

  8. nginx+uwsgi+djangos部署项目完整

    1.基本信息 Linux 版本:SentOS7.4 Python 版本:3.7.1 2.下载 uWSGI pip3 install uwsgi uwsgi 主要的任务是座位分发路由的服务器. 先写一个 ...

  9. 使用gunicorn将django项目部署到生产环境的子目录下,在nginx后端获取客户真实IP地址

    生产环境有时,并不是为了一个项目而存在的.毕竟,域名是比较稀有的. 今天遇到这个问题,解决了.作个记录. 并且,如果将django项目部署在Nginx后面,那如何获取用户真实的IP地址呢? 下面就来解 ...

随机推荐

  1. 正式班D23

    2020.11.05星期四 正式班D23 目录 12.3.3 HUP信号 12.3.3 HUP信号 在关闭终端时,终端会收到Linux HUP信号(hangup信号),关闭其所有子进程. 想让进程一直 ...

  2. How to using code post packingSlip on Quality Orders Form[AX2009]

    For simple user operation posting packing slip with purchase order. we added a function button on Qu ...

  3. c#反转

    string[] arr = Console.ReadLine().Split(' '); string result = string.Empty; for (int i = arr.Count() ...

  4. layui表单提交

    关于layui表单提交  只是简单用一个文本框记录一下提交过程    其他的如下拉框选择框样式可以参考官网 下面直接开始.首 一:前台页面 <!DOCTYPE html><html& ...

  5. 数字取证autopsy系列——保存证据镜像(一)

    简介: 在学习autopsy之前,我们先学习如何将犯罪嫌疑人的磁盘保存为一个证据镜像.我们使用的将磁盘保存为证据镜像的工具为AccessData FTK imager,你可以自行搜索下载. Acces ...

  6. Spider_基础总结5--动态网页抓取--元素审查--json--字典

    # 静态网页在浏览器中展示的内容都在HTML的源码中,但主流网页使用 Javascript时,很多内容不出现在HTML的源代码中,此时仍然使用 # requests+beautifulsoup是不能够 ...

  7. 深入探讨HBASE

    HBASE基础 1. HBase简介HBase是一个高可靠.高性能.面向列的,主要用于海量结构化和半结构化数据存储的分布式key-value存储系统. 它基于Google Bigtable开源实现,但 ...

  8. quic是干什么的?

    什么是quic? quic解决了什么问题?HTTP和QUIC QUIC :Quick UDP Internet Connections:是一种新的默认加密的互联网通信协议,它提供了许多改进,旨在加速H ...

  9. MYSQL 存储引擎(面)

    存储引擎是MySQL的组件,用于处理不同表类型的SQL操作.不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能. 使用哪一种引擎可以灵活选择,一个数据 ...

  10. 基于FFmpeg的Dxva2硬解码及Direct3D显示(五)

    解码及显示 目录 解码及显示 解码 显示 资源清理 解码 循环读取视频帧 AVPacket packet = { 0 }; while (av_read_frame(m_pFmtCtx, &p ...