深入了解Nginx之Nginx与Python(1)

本文详细介绍了FastCGI、uWSGI和SCGI在Nginx中的作用,解释了它们在CGI上的改进以及如何通过持久化进程提高性能。同时,对比了uWSGI和SCGI的不同特性,展示了如何在Web服务器与网关应用程序之间高效通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

6 Python和Nginx

6.1 简介FastCGI

      FastCGI(Fast Common Gateway Interface)是基于CGI上的改进,是CGI的一种演变产物。虽然目的是保持同样的。FastCGI在CGI上提供了重大的提升,通过建立起以下的原则。

      l  取代对于每一个请求孵化一个新进程,FastCGI採用持久化进程。伴随着可以处理多个请求的能力。

      l  Webserver和网关应用程序通过使用sockets比方TCP或者POSIXT 本地IPC sockets来交流。其结果是,它们的          进程可以在一个网络上的两个不同的计算机上。

      l  Webserver转向client请求道网关,在一个单一的连接中接受请求。

额外的请求可能也伴随着不必创建一个额外的连接。注意到在大多数server上,包含Nginx和Apache,FastCGI的实现不支持多路复用(multiplexing)。

      l  既然FastCGI是一个基于socket协议,它可以在不论什么平台任以不论什么语言来实现。

    设计一个强大的FastCGI架构实际上不是如某人想象的那么复杂。仅仅要你有一个Webserver和一个正在执行的处理应用程序就能够了。

唯一的难点就是保持去在两个组织间进行连接。

6.2 uWSGI 和 SCGI

     Nginx提供了两个其他基于CGI模块的实现。

     l  uWSGI模块同意Nginx去与应用程序以uwsgi协议进行交流,它本身源之于Web Server GatewayInterface(WSGI)。大部分一般使用server实现的是uwsgi协议,这不是uWSGI的原始名称。这个能够从它提供的最新文档(http://uwsgi-docs.readthedocs.org.)中能够知道。uWSGI project主要就是为Python应用程序而设计的。

      l  SCGI。代表着简单一般网关接口(SimpleCommon Gateway Interface)。是一个CGI协议的变种,更像FastCGI。可是,比FastCGI更年轻,它的详细规范在2006年公布,设计SCGI是为了更easy去实现。正如它名字表达的一样:简单。它不与一种特殊的编程语言相关。

      FastCGI, uwsgi 和 SCGI的重大不同之处是它们的协议是不一样的,Nginx以模块将他们分开,以下一个表单将呈现相应关系。

     

版权声明:本文博主原创文章。博客,未经同意不得转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值