首页 > 其他分享 >CGI, FastCGI, WSGI, uWSGI, uwsgi一文搞懂

CGI, FastCGI, WSGI, uWSGI, uwsgi一文搞懂

时间:2023-03-06 10:11:13浏览次数:35  
标签:CGI Web WSGI uwsgi 服务器 搞懂 uWSGI

中间件

1.服务器中间件:nginx,apache
2.数据库中间件:介于应用程序和数据库之前的,MyCat
3.消息队列中间件:kafka,rabbitmq,Rocketmq

CGI

1.CGI是一种标准规范
通用网关接口(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的升级版

img

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 的官方定义是,the Python Web Server Gateway Interface。从名字就可以看出来,这东西是一个Gateway,也就是网关。网关的作用就是在协议之间进行转换。

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

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

uWSGI

1.它是一个Web服务器(类似的有wsgiref,gunicorn),它实现了WSGI协议、uwsgi、http等协议。用于接收前端服务器转发的动态请求并处理后发给 web 应用程序。

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

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

wsgiref,werkzeug(一个是符合wsgi协议的web服务器+工具包(封装了一些东西))
uWSGI 用c语言写的,性能比较高
gunicorn:python写的
tornado:也可以部署django项目(但是现在一般不用了)

在这里插入图片描述

uwsgi

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

2.一句话总结:uWSGI自有的一个协议

uWSGI:web服务器,等同于wsgiref的升级版
uwsgi:uWSGI自有的协议
# nginx配置
location / {
    # 方式一
    #include uwsgi_params; # 导入一个Nginx模块他是用来和uWSGI进行通讯的
    #uwsgi_connect_timeout 30; # 设置连接uWSGI超时时间
    #uwsgi_pass 10.0.0.10:8080;
    # 方式二
    #include uwsgi_params; # 导入一个Nginx模块他是用来和uWSGI进行通讯的
    #uwsgi_pass unix:///var/www/script/uwsgi.sock; # 指定uwsgi的sock文件所有动态请求
    # 方式三
    #必须支持http协议才行
    proxy_pass http://10.0.0.10:8088
}  

图解

img

img

标签:CGI,Web,WSGI,uwsgi,服务器,搞懂,uWSGI
From: https://www.cnblogs.com/hkwJsxl/p/17182783.html

相关文章

  • ArcGIS Pro CreateInsertCursor
    using(FeatureClassfeatureClass=featureLayer.GetFeatureClass()){//InsertrowsusingInsertCursorEditOperationinsertCursorEditOperation=newEditO......
  • 一文搞懂Redis分布式锁
    开启掘金成长之旅!这是我参与「掘金日新计划·2月更文挑战」的第天,​​点击查看活动详情​​前言:日常开发中,我们经常会使用到锁,以保证某一段逻辑是线程安全的,同步的。......
  • 设计模式篇之一文搞懂如何实现单例模式
    设计模式篇之一文搞懂如何实现单例模式大家好,我是小简,这一篇文章,6种单例方法一网打尽,虽然单例模式很简单,但是也是设计模式入门基础,我也来详细讲讲。DEMO仓库:https://gi......
  • iis6 500.19 dynamiccompressonModule 处理程序 staticfile FastCGI
    看详细中的处理程序类型是不是staticfile或FastCGI如果不是请出门左转百度。如果是则可以尝试一下方法:staticfile可以尝试一下方法:打开网站的根目录的web.confi文件在配......
  • uwsgi安装及常用配置
    1.安装yuminstallpython39-develpip3installuwsgi常用指令:uwsgi--iniuwsgi.iniuwsgi--stopuwsgi.pidpkill-fuwsgi-9(也可以sodukill-9杀掉进程)......
  • ArcGIS Pro代码修改布局方向
    privatevoidSwitchPageOrientation(){if(LayoutView.Active==null)return;varlayout=LayoutView.Active.Layout;QueuedTask.Run(()=>{va......
  • 不为人知的网络编程(十五):深入操作系统,一文搞懂Socket到底是什么
    1、引言我相信大家刚开始学网络编程中socket的时候,都跟我一样对书上所讲的socket概念云里雾里的、似懂非懂,很是困扰。这篇文章我打算从初学者的角度,用通俗易懂的文字,跟大......
  • 跨域请求详解(看懂这篇博客,彻底搞懂跨域问题)
    跨域请求详解同源策略同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是......
  • ArcGIS Server 10.4切片图的发布
    一、ArcGISServer10.4切片图的发布发布步骤:1、打开ArcMap--目录--GIS服务器--arcgisonlocalhost_6080(系统管理员)--SampleWorldCities--鼠标右键点击“停止”,停止准......
  • Django uwsgi问题解析
    通常情况下,部署Django应用到生产环境时都会通过uwsgi部署,uwsgi一些配置项配置问题有可能会导致服务出现502状态码或者其他超时等的情况常用到的配置项如下:reload-on-as......