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

  • 相关阅读:
    zookeeper的ACL权限控制
    Zookeeper客户端Curator基本API
    get和post的区别
    Html基本操作实例代码
    poj3322 Bloxorz I
    Delphi 调用SQL Server 2008存储过程
    架构设计师—你在哪层楼?
    LINUX常用命令
    分层自动化测试与传统自动化测试的差别
    商业智能漫谈
  • 原文地址:https://www.cnblogs.com/Xuuuuuu/p/14288757.html
Copyright © 2011-2022 走看看