博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对nginx,uWSGI,django的理解
阅读量:4450 次
发布时间:2019-06-07

本文共 660 字,大约阅读时间需要 2 分钟。

以前建站就采用过nginx+uWSGI+django的结构,但是一直不理解uWSGI在这其中起的作用,网上很多介绍这三者配置的,但是就其在整个请求和应答过程中所起的作用却很少有人解释。

这其中不得不说uwsgi,uWSGI,UWSGI的区别,来自百度百科:

  • WSGI是一种通信协议
  • uwsgi是一种线路协议而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信。
  • 而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。

WSGI类似CGI,其中规定了nginx和django之间的接口以及两者通信方式,uWSGI实现了这个协议,充当nginx和django之间的桥梁。

nginx是作为web服务器,当一个请求过来,nginx首先解析http包,然后将结果交给uWSGI处理,然后uWSGI就依据解析后了的url等来调用相应的django提供的接口,然后经过django中若干中间件,最后到达view的处理函数。响应的过程正好相反。django脚本本身是单线程的,怎么实现多线程呢?在uWSGI这一层可以创建多线程,从而实现了多线程,而且效率还挺高的。

而且因为uWSGI本身也实现了http协议,所以自然也可以充当web服务器,就uWSGI和django脚本也可以运行的,但是没有nginx的效率高(毕竟别人专门做这个的),并且nginx可以连接多个uWSGI,具有反向代理和负载均衡的功能。

转载于:https://www.cnblogs.com/damine/p/5989145.html

你可能感兴趣的文章
(2)数据结构——线性表(链表)实现
查看>>
[leetCode]Linked List Cycle I+II
查看>>
leetcode中的python学习
查看>>
sqlserver打开对象资源管理器管理的帮助文档的快捷键
查看>>
解题报告:hdu1257 LIS裸题
查看>>
Add some compression to your program
查看>>
动态识别类型
查看>>
JBOSSAS 5.x/6.x 反序列化命令执行漏洞(CVE-2017-12149)
查看>>
Zookeeper zkui-zookeeper图形化管理工具
查看>>
java运行时内存分类
查看>>
为什么说 Git 比 SVN 更好
查看>>
1.基础数据类型的初识 字符串 bool 整型 if else elif
查看>>
【设计模式】4、原型模式
查看>>
进入meta模式关闭背光灯
查看>>
轻松实现Ecshop商城多语言切换
查看>>
webstorm上svn的安装使用
查看>>
【JEECG技术文档】数据权限自定义SQL表达式用法说明
查看>>
使用 Bootstrap Typeahead 组件
查看>>
EF不能很好的支持DDD?估计是我们搞错了!
查看>>
ubuntu下基于sqlite3后台的php环境的搭建
查看>>