• CGI, FastCGI, WSGI, uWSGI, uwsgi


    一 CGI

    1
    2
    3
    4
    5
    6
    7
    # 1、通用网关接口(Common Gateway Interface/CGI)是一种重要的互联网技术,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据。CGI描述了服务器和请求处理程序之间传输数据的一种标准。

    # 2、CGI程序可以用任何脚本语言或者是完全独立编程语言实现,只要这个语言可以在这个系统上运行。

    # 3、用来规范web服务器传输到php解释器中的数据类型以及数据格式,包括URL、查询字符串、POST数据、HTTP header等,也就是为了保证web server传递过来的数据是标准格式的

    # 4、一句话总结: 一个标准,定义了客户端服务器之间如何传数据

    二 FastCGI

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # 1、快速通用网关接口(Fast Common Gateway Interface/FastCGI)是一种让交互程序与Web服务器通信的协议。FastCGI是早期通用网关接口(CGI)的增强版本。

    # 2、FastCGI致力于减少网页服务器与CGI程序之间互动的开销,从而使服务器可以同时处理更多的网页请求。

    # 3、使用FastCGI的服务器:
    Apache HTTP Server (部分)
    Cherokee HTTP Server
    Hiawatha Webserver
    Lighttpd
    Nginx
    LiteSpeed Web Server
    Microsoft IIS
    # 4、一句话总结: CGI的升级版

    image-20200318002154734

    三 WSGI

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # 1、Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。自从WSGI被开发出来以后,许多其它语言中也出现了类似接口。

    # 2、wsgi server (比如uWSGI) 要和 wsgi application(比如django )交互,uwsgi需要将过来的请求转给django 处理,那么uWSGI 和 django的交互和调用就需要一个统一的规范,这个规范就是WSGI WSGI(Web Server Gateway Interface)

    # 3、WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是为 Python 语言定义的 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接口。自从 WSGI 被开发出来以后,许多其它语言中也出现了类似接口。

    # 4、WSGI 的官方定义是,the Python Web Server Gateway Interface。从名字就可以看出来,这东西是一个Gateway,也就是网关。网关的作用就是在协议之间进行转换。

    # 5、WSGI 是作为 Web 服务器与 Web 应用程序或应用框架之间的一种低级别的接口,以提升可移植 Web 应用开发的共同点。WSGI 是基于现存的 CGI 标准而设计的

    # 6、一句话总结: 为Python定义的web服务器和web框架之间的接口标准

    四 uWSGI

    1
    2
    3
    4
    5
    6
    7
    8
    9
    wsgiref,werkzeug(一个是符合wsgi协议的web服务器+工具包(封装了一些东西))
    uWSGI 用c语言写的,性能比较高
    gunicorn:python写的
    tornado:也可以部署django项目
    # 1、它是一个Web服务器(类似的有wsgiref,gunicorn),它实现了WSGI协议、uwsgi、http等协议。用于接收前端服务器转发的动态请求并处理后发给 web 应用程序。

    # 2、Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换

    # 3、一句话总结: 一个Web Server,即一个实现了WSGI的服务器,大体和Apache是一个类型的东西,处理发来的请求。

    image-20200318000134358

    五 uwsgi

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14


    location / {
    #方式一
    #include uwsgi_params; # 导入一个Nginx模块他是用来和uWSGI进行通讯的
    #uwsgi_connect_timeout 30; # 设置连接uWSGI超时时间
    #uwsgi_pass 101.133.225.166:8080;
    #方式二
    #include uwsgi_params; # 导入一个Nginx模块他是用来和uWSGI进行通讯的
    #uwsgi_pass unix:///var/www/script/uwsgi.sock; # 指定uwsgi的sock文件所有动态请求
    #方式三
    proxy_pass http://101.133.225.166:8088

    }
    1
    2
    3
    4
    5
    # 1、它是uWSGI服务器实现的独有的协议,用于定义传输信息的类型,是用于前端服务器与 uwsgi 的通信规范。

    # 1、一句话总结: uWSGI自有的一个协议
    uWSGI:web服务器,等同于wsgiref
    uwsgi:uWSGI自有的协议

    image-20200318000713341image-20200318001134520

  • 相关阅读:
    2022 开年计划
    阿里云,华为云产品使用汇总
    git 连接gitlab
    golang 学习汇总
    mongodb分片集群的搭建总结
    2021 年终 总结,随想
    vue请求RSA加密
    sockjsnode/info请求失败
    rules校验
    [转]SPRINGBOOT启动流程及其原理
  • 原文地址:https://www.cnblogs.com/bubu99/p/14199832.html
Copyright © 2020-2023  润新知