uwsgi和nginx的故事
要谈uwsgi,当然要先谈谈wsgi,wsgi是理论家牛顿,uwsgi就是工程家特斯拉。
wsgi是缩写,全称为web server gateway interface,中文意思就是服务器的网关接口。它是一种通用的接口标准,使python 应用程序和服务器之间可以开始交互了,我更乐意把接口想成翻译官。
uwsgi我们可以看成是一个软件,应用程序。它帮助我们把wsgi协议给实现了,同时也实现了http协议,这样我们可以不再关注底层网络通信的实现,而把精力用在业务逻辑上面。
nginx和apache等都是常见的静态服务器,主要用于处理静态请求,而对于动态生成的html,则可以利用其它应用程序 实现,我这里是用的是python的框架django。而django与nginx服务器之间想要很好的通信的话,就必然需要使用wsgi协议了,我们可以在django框架里面按照wsgi协议的标准写出接口和nginx通信,这是可以的,其实django内置了一个实现了wsgi接口的应用,但性能极差。无论多么复杂的Web应用程序,入口都是一个WSGI处理函数。HTTP请求的所有输入信息都可以通过environ
获得,HTTP响应的输出都可以通过start_response()
加上函数返回值作为Body。有句话说的好:do not repeat youself,不要重复造轮子。已经有写好的非常不错的实现,那就是uwsgi,它也是一个服务器,可以说就是中间人的角色,左接nginx,右连django。
uwsgi又是怎样实现这种连接的呢?
首先要讲的是,uwsgi的并发能力很强,但是它处理静态文件能力很不理想。所以一般静态文件就交由nginx处理。uwsgi与nginx之间是通过套接字socket就行通信的,他们之间的交互可以理解为是两个进程之间的交互,而它通过实现wsgi协议,可以与python写的应用程序进行交互,这里也就是django框架。
uwsgi和nginx的故事的更多相关文章
- Setting up Django and your web server with uWSGI and nginx
https://uwsgi.readthedocs.io/en/latest/tutorials/Django_and_nginx.html Setting up Django and your we ...
- [r]Setting up Django and your web server with uWSGI and nginx
Setting up Django and your web server with uWSGI and nginx This tutorial is aimed at the Django user ...
- Django with uWSGI and nginx
Reference:http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html Setting up Dja ...
- centos6.5配置uwsgi与nginx支持django
一.centos中升级python 1. > wget https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tgz # https://ww ...
- 阿里云服务器部署笔记一(python3、Flask、uWSGI、Nginx)
一.重置密码,并重启服务器 二.安全组配置>配置规则>添加安全组规则(为了能在本地ssh到实例) 配置如下: 此配置为允许任意公网IP登陆实例,注意windows与Linux系统端口范围不 ...
- python3环境搭建(uWSGI+django+nginx+python+MySQL)
1.系统环境,必要知识 #cat /etc/redhat-release CentOS Linux release (Core) #uname -r -.el7.x86_64 暂时关闭防护墙,关闭se ...
- uWSGI+Django+nginx(下)
在上篇文章 说的uWSGI和Django都已没问题的情况下 找到 nginx的配置文件 我的是:/etc/nginx/nginx.conf 修改这个文件 在http{}里加入 下面的 server { ...
- uwsgi加nginx部署django restframework前后端分离项目
一.uwsgi和nginx简介 1.uwsgi(摘抄于百度百科): uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与 ...
- 第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置
第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置 软件版本 uwsgi- ...
随机推荐
- 【Excel】读取固定长文本
'******************************************************************************* ' 固定長形式テキストファイルを読み込 ...
- redis实战 -- python知识散记
-- time.time() -- row.to_dict() -- json.dumps(row.to_dict()) #!/usr/bin/env python import time def s ...
- Pointer-network的tensorflow实现-1
pointer-network是最近seq2seq比较火的一个分支,在基于深度学习的阅读理解,摘要系统中都被广泛应用. 感兴趣的可以阅读原paper 推荐阅读 https://medium.com/@ ...
- HTML禁止右键复制【两行代码实现】
很多的站长朋友会考虑保护网站的内容不被人复制,或者是不被人轻易的复制,下面就来告诉如何用两行代码来做HTML禁止右键复制html的方法: document.oncontextmenu=new Func ...
- window10安装composer
第一步: 在https://getcomposer.org/download/页面下的Manual Download里下载最新的版本. 下载下来的是composer.phar文件,把这个文件放在你的p ...
- gym102007 E
我计划预习五个小时离散,然后hmc补了这道他自认为非常的裸并且很傻逼自己可以一眼秒的简单题,然后给我讲了讲,然后我失去了一整晚的生命迹象. 首先我们可以发现一个神奇的现象,啊,先排个序,然后我们会发现 ...
- PHP中递归的实现(附例子)
递归函数是一种调用自己的函数.写递归函数时要小心,因为可能会无穷递归下去.必须确保有充分的方法来终止递归. 一:使用参数引用完成递归函数.操作的是同一块内存地址. <?php $i=1; fun ...
- common lisp里的几个操作符
setf 赋值操作符,定义一个全局变量.返回值是最后一个赋值的结果. let 局部变量操作符.let表达式有两部分组成.第一部分是任意多的变量赋值,他们被包裹在一个()中,第二部分是任意数量的表示式 ...
- ArcEngine临时数据存储 创建内存工作空间
参考网址,这里 工作中有时候需要使用临时数据,以前都是创建一个默认的shapefile或者gdb,今天发现esri官方帮助文档给出了一个方法,可以创建内存工作空间,代码如下: public stati ...
- js jq 手机号实现(344) 附带删除功能 jq 实现银行卡没四个数加一个空格 附带删除功能
js 手机号实现(344) 下面有将正则验证去掉“-” 或“空格” 下一篇博客有单独的删除功能方法 <!DOCTYPE html> <head> <meta char ...