云平台开发架构分析系列:16 Nginx+uWSGI+webpy服务器架构原理3

1201 人浏览 | 时间: 2017-06-30 15:26:02 | 作者: codexia 会员文章,禁止转载

发现一个程序员专属的导航网站,你肯定不知道,是时候告诉你了,请前去看看吧

        在《云平台开发架构分析系列14:Nginx+uWSGI+webpy服务器架构原理1》和《云平台开发架构分析系列15:Nginx+uWSGI+webpy服务器架构原理2》文章中,分别讲解了Nginx服务器和uWSGI服务器。Nginx服务器处理静态网页,而uWSGI处理动态网页,两者都是高性能的服务器,动静配合,可以将性能发挥到最好。

        本篇从uWSGI到webpy建立通路,讲解HTTP请求如何到达web应用程序来处理的。webpy是web框架,还不是最终的处理阶段。我们在webpy的框架下,写的各种处理请求的python脚本文件,就是最终的处理http请求。

        当nginx将http请求发送给了uWSGI后,uWSGI做了一些处理,可以进一步将参数封装,让编程更加方便。然而uWSGI还是不直接处理业务。不过每一步的包装,都会让编程更加方便快捷。

        WSGI , 它定义了:web应用(或者web框架)与 web服务器交互接口(WSGI)。而uWSGI就是一个支持WSGI规范的web服务器。把web应用部署到uWSGI中,当 uWSGI 接受到请求时,会按照WSGI定义的接口调用 web 应用处理。其他网关协议定义也差不多,毕竟处理的东西是同一个东西。

        uWSGI会把接收到的请求按照指定协议解析,然后把解析的结果(譬如:HTTP各请求头数据)设置到environ变量中,接着按照WSGI规范回调web应用(uWSGI默认回调application函数,并且传递environ和start_response两个参数),最终web应用开始处理请求(各种数据库查询,各种函数调用,业务功能处理)并把结果返回给uWSGI。

        可以看出,uWSGI是在处理好http请求的相关信息后,会去调用一个回调函数。将一些信息通过函数参数传进去,当然也有全局变量。这个函数是谁提供的呢?就是web应用程序提供的。uWSGI服务器提供好回调函数,只要web应用程序按回调函数的相关要求来对接,就可以支持uWSGI服务器了。

        有了uWSGI的处理,我们现在做的编程开发,就是常规看到的web程序开发了。这一层次的开发是很高的层次了。然而如果要你开发一个网站,仅仅这样,怕是不够吧。比如一个网站的业务是很大的,如果每一个请求都基于最基本的uWSGI传递过来数据来处理,开

开通会员付1C币>>阅读全文
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
收藏 0 点赞 0

相关阅读