转载自:http://liuqingzheng.top/

CGI

1.通用网关接口(Common Gateway Interface/CGI)是一种重要的互联网技术

可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据。

CGI描述了服务器和请求处理程序之间传输数据的一种标准。

2.CGI程序可以用任何脚本语言或者是完全独立编程语言实现

只要这个语言可以在这个系统上运行。

3.用来规范web服务器传输到php解释器中的数据类型以及数据格式

包括URL、查询字符串、POST数据、HTTP header等,也就是为了保证web server传递过来的数据是标准格式的

4.一句话总结:

一个标准,定义了客户端服务器之间如何传数据

FastCGI

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的升级版

WSGI

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

  • 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是一个类型的东西,处理发来的请求。

uwsgi

1.它是uWSGI服务器实现的独有的协议

用于定义传输信息的类型,是用于前端服务器与 uwsgi 的通信规范。

2.一句话总结:

uWSGI自有的一个协议

  • uWSGI:web服务器,等同于wsgiref
  • uwsgi:uWSGI自有的协议
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
    
        }

Last modification:August 10, 2022
如果觉得我的文章对你有用,请随意赞赏