zoukankan      html  css  js  c++  java
  • 浅析WSGI

    WSGI

    Python Web Server Gateway Interface(python web服务器网关接口),实际上就是一种协议,我们的应用(Django,Flask)实现了WSGI,就可以配合实现了WSGI的服务器(uWSGI,gunicorn)来工作了。

    以下是WSGI工作的生命周期两种结构图

    两级结构

    在这种结构里,uWSGI作为服务器,它用到了HTTP协议以及wsgi协议,flask应用作为application,实现了wsgi协议。当有客户端发来请求,uWSGI接受请求,调用flask app得到响应,之后响应给客户端。

    通常来说,Flask等Web框架会自己附带一个wsgi服务器(这就是flask应用可以直接启动的原因),但是这只是在开发阶段用到的,在生产环境是不够用的,所以用到了uwsgi这个性能高的服务器。

    三级结构

    这种结构里,uwsgi作为中间件,它用到了uwsgi协议(与nginx通信),wsgi协议(调用flask app)。当有客户端发来请求,nginx先做处理,然后再到uwsgi服务器,再到flask app,然后再一层层返回给客户端。

    多一层反代有什么好处?

    • 提高web server性能(uWSGI处理静态资源不如nginx,nginx会在收到一个完整的http请求后再转发给uWSGI)
    • nginx可以做负载均衡
    • 在一定程度上提高了系统的安全性(客户端直接与nginx交互而不是直接和uWSGI交互)

    uWSGI

    uWSGI是一个实现了wsgi,uwsgi,http协议的服务器。

    它有两种模式,http模式对应上面的两层结构,socket对应上面的三层结构。

    参考链接:https://blog.csdn.net/baidu_35085676/article/details/80184874

  • 相关阅读:
    前端诡异参数start
    JDK常用命令(二)jstack
    JDK常用命令(一)jps、jstat
    C#反射之基础应用
    c#实现随鼠标移动窗体
    c# 使用api函数 ShowWindowAsync 控制窗体
    简单例子快速了解事件处理和委托 event delegate
    通过 WIN32 API 实现嵌入程序窗体
    C# 轻松实现对窗体(Form)换肤[转]
    C#正则表达式匹配HTML中的图片路径
  • 原文地址:https://www.cnblogs.com/Xuuuuuu/p/14288757.html
Copyright © 2011-2022 走看看