uwsgi、wsgi和nginx的区别和关系

区分uWSGI和WSGI:

  在python web开发中,经常使用uwsgi配合nginx部署一个web框架,如Django或者flask,框架和服务器之间要符合wsgi协议

web服务器和web框架
  web服务器用来接收客户端请求,建立连接,转发响应,至于转发的内容,交由web框架来处理,即Django或者flask处理业务逻辑,如查询数据库,生成实时信息。Nginx就是一个web服务器,django或者flask就是web框架

uWSGI和WSGI:
  如何做到任意一个web服务器,都能搭配任意一个web框架,这就需要WSGI协议,只要服务器和web框架都满足WSGI协议,他们就能相互搭配。所以WSGI只是一种协议,一种约定,一种标准,就像U盘的插头形状,和电脑USB接口的形状一样,他们都满足这一种标准,所以他们能建立联系,实现对文件的操作。而uWSGI就是满足WSGI协议的一种服务器,用来接收客户端的请求,转发响应的程序。
  实际上,uWSGI服务器 + Django框架,就可以实现网站的功能了,但一旦客户端访问量过大,客户端请求连接就需要长时间的等待,这种模式就无法满足需求了,分布式服务器此时应运而生,而nginx就是分布式服务器的一大利器,我们可以多用几台服务器来分别处理请求,nginx就相当于管家一样分配客户端请求连接和web服务器,这就是用nginx来实现反向代理,及代理服务器。

nginx和uWSGI服务器之间是如何配合工作的?

  首先浏览器发起http请求到nginx服务器,nginx根据接收的请求包,进行url分析,判断访问的资源类型,如果是静态资源,直接读取静态资源返回给浏览器,如果请求的是动态资源就转交给uwsgi服务器,uwsgi服务器根据自身的WSGI协议,找到对应的Django框架,Django框架下的应用进行逻辑处理,将返回值发送到uwsgi服务器,uwsgi服务器再返回给nginx,最后nginx将返回值返回给浏览器进行渲染显示给用户

原文地址:https://www.cnblogs.com/stephenmoo/p/12023506.html

时间: 2024-11-16 19:00:14

uwsgi、wsgi和nginx的区别和关系的相关文章

uwsgi UWSGI WSGI 这让人挠头的关系

一致搞不大懂这些七七八八的关系,看了些写下来,以后就不会没有一个概念了. K的知乎的一个答案, 多谢了真是,2楼就是 https://www.zhihu.com/question/54151743

uWSGI ,WSGI和uwsgi的区别

1.1.为方便理解,uWSGI ,WSGI和uwsgi在网站项目流程图中的功能如下: 1.2.网站项目结构图 2.uWSGI ,WSGI和uwsgi的区别 2.1 WSGI: WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是为 Python 语言定义的 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接口.也可以认为WSGI是一种通信协议.自从 WSGI 被开发出来以后,许多

Apache和Nginx的区别

Apache 和 Nginx的区别与比较:   Apache: Apache HTTP Server(简称apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一,它快速.可靠并且通过简单的API扩展,将Perl/Python等解释器编译到服务器中. Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适用于多处理器环境,因此,在一个apache Web站点扩容时,通常是

UTF-8 GBK UTF8 GB2312之间的区别和关系

UTF-8 GBK UTF8 GB2312之间的区别和关系 UTF-8:Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM.是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码.UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强.UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示.如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包.

运行中nginx进程间的关系

在正式提供产品的环境下,部署nginx都是使用master进程来管理多个worker进程. 一般情况下,worker进程都与服务器上的核数相等,每一个worker进程都是繁忙的,它们真正的提供互联网服务. 而master进程则很清闲,只负责监控管理worker进程. worker进程之间通过共享内存,原子操作等一系列进程之间的通讯来实现负载均衡 共享内存( shared memory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问.共享内存是

LoadRunner 思考时间与事务响应时间的区别与关系

LoadRunner 思考时间与事务响应时间的区别与关系   思考时间lr_think_time 就是一个事务要开始时思考的时间;比如 你要点击一个 登录按钮 我们都要点击这个按钮要先思考下 就是人为脑袋思维的延迟,还有手指点击鼠标的这个动作的时间 一般是1-5秒,这就是思考时间,性能测试模拟思考时间就是模拟真实人为动作的方式来做压力测试.一般在脚本中思考时间是这样写比较合理,在一个事务的结束点另一个事务的起始点,两者中间定义思考时间.lr_end_transaction("登录",

web容器 web服务器 servlet/jsp容器 之间的区别和关系是什么?

web容器 web服务器 servlet/jsp容器 之间的区别和关系是什么? 这是我在网上找的一些资料:1. Web浏览器除了可以在本地硬盘上打开网页文档外,还可以使用http网络协议从网络上的Web服务器(也叫www服务器)上获取网页文档的内容. 2. Web浏览器与Web服务器分别代表着TCP网络程序的客户机和服务器. 3. 无论网站规模的大小,最起码的工作就是要在用做Web服务器的计算机上安装某种Web服务器软件.只要在一台计算机上安装了Web服务器软件,从功能上讲,这台计算机就可以成为

TCP/IP、Http、Socket的区别与关系

--TCP/IP.Http.Socket的区别与关系--------------------------------------2014/05/14 网络由下往上分为 物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层, 三者从本质上来说没有可比性, socket则是对TCP/IP协议的封装和应用(程序员层面上). 也可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输, 而H

【Java基础】接口Comparable和Comparator的区别和关系

接口Comparable和Comparator的区别和关系 1).两者都是实现集合中元素的比较.排序: 2).Comparable是集合内部定义方法实现排序,Comparator是集合外部实现排序 3).Comparator接口在java.util下,Comparable接口在java.lang下; 通常自定义类加入如List等容器中能够排序,可以实现Comparable接口,在用Collections.sort(List<T> list, Comparator<? super T>