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

  • 相关阅读:
    juqery 点击分页显示,指定一页显示多少个,首次加载显示多少个
    PHP指定时间戳/日期加一天,一年,一周,一月
    POJ 2955 Brackets 区间合并
    zoj 3537 Cake 区间DP (好题)
    DP——最优三角形剖分
    LightOJ 1422 Halloween Costumes
    POJ 1738 石子合并2 GarsiaWachs算法
    NIOP1995 石子合并(区间DP)
    POJ 2429
    pollard_rho和Miller_Rabin
  • 原文地址:https://www.cnblogs.com/Xuuuuuu/p/14288757.html
Copyright © 2011-2022 走看看