WSGI,CGI,FastCGI和mod_python之间在Python方面的差异和用途?

时间:2022-10-27 21:56:17

I'm just wondering what the differences and advantages are for the different CGI's out there. Which one would be best for python scripts, and how would I tell the script what to use?

我只是想知道不同CGI的差异和优势是什么。哪一个最适合python脚本,以及如何告诉脚本使用什么?

4 个解决方案

#1


36  

A part answer to your question, including scgi.

你的问题的一部分答案,包括scgi。

CGI vs FCGI

CGI vs FCGI

Lazy and not writing it on my own. From the wikipedia: http://en.wikipedia.org/wiki/FastCGI

懒惰而不是自己写。来自*:http://en.wikipedia.org/wiki/FastCGI

Instead of creating a new process for each request, FastCGI uses persistent processes to handle such requests. Multiple processes can configured, increasing stability and scalability. Each individual FastCGI process can handle many requests over its lifetime, thereby avoiding the overhead of per-request process creation and termination

FastCGI不使用每个请求创建新进程,而是使用持久进程来处理此类请求。可以配置多个进程,从而提高稳定性和可伸缩性。每个单独的FastCGI进程可以在其生命周期内处理许多请求,从而避免了每个请求进程创建和终止的开销

#2


13  

There's also a good background reader on CGI, WSGI and other options, in the form of an official python HOWTO: http://docs.python.org/2/howto/webservers.html

还有一个很好的CGI,WSGI和其他选项的背景阅读器,以官方python HOWTO的形式:http://docs.python.org/2/howto/webservers.html

#3


6  

In a project like Django, you can use a WSGI (Web Server Gateway Interface) server from the Flup module.

在像Django这样的项目中,您可以使用Flup模块中的WSGI(Web服务器网关接口)服务器。

A WSGI server wraps a back-end process using one or more protocols:

WSGI服务器使用一个或多个协议包装后端进程:

  • FastCGI (calling a server process)
  • FastCGI(调用服务器进程)
  • SCGI (Simple Common Gateway Interface - a simpler FastCGI)
  • SCGI(简单的通用网关接口 - 更简单的FastCGI)
  • AJP (Apache JServ Protocol - a Java FastCGI)
  • AJP(Apache JServ协议 - Java FastCGI)
  • mod_python (runs pre-loaded code per request - uses lots of RAM)
  • mod_python(每个请求运行预加载的代码 - 使用大量RAM)
  • CGI (Common Gateway Interface, starts a process per request - slow)
  • CGI(通用网关接口,按请求启动进程 - 慢)

#4


1  

  • FastCGI is a kind of CGI which is long-live, which will always be running.
  • FastCGI是一种长寿命的CGI,它将一直运行。
  • With FastCGI, it'll take less time.
  • 使用FastCGI,它将花费更少的时间。
  • Because of multi-processes, FastCGI will cost more memory than CGI.
  • 由于多进程,FastCGI将比CGI花费更多内存。

In Detail Diff between FastCGI vs CGI

详细介绍FastCGI与CGI之间的差异

#1


36  

A part answer to your question, including scgi.

你的问题的一部分答案,包括scgi。

CGI vs FCGI

CGI vs FCGI

Lazy and not writing it on my own. From the wikipedia: http://en.wikipedia.org/wiki/FastCGI

懒惰而不是自己写。来自*:http://en.wikipedia.org/wiki/FastCGI

Instead of creating a new process for each request, FastCGI uses persistent processes to handle such requests. Multiple processes can configured, increasing stability and scalability. Each individual FastCGI process can handle many requests over its lifetime, thereby avoiding the overhead of per-request process creation and termination

FastCGI不使用每个请求创建新进程,而是使用持久进程来处理此类请求。可以配置多个进程,从而提高稳定性和可伸缩性。每个单独的FastCGI进程可以在其生命周期内处理许多请求,从而避免了每个请求进程创建和终止的开销

#2


13  

There's also a good background reader on CGI, WSGI and other options, in the form of an official python HOWTO: http://docs.python.org/2/howto/webservers.html

还有一个很好的CGI,WSGI和其他选项的背景阅读器,以官方python HOWTO的形式:http://docs.python.org/2/howto/webservers.html

#3


6  

In a project like Django, you can use a WSGI (Web Server Gateway Interface) server from the Flup module.

在像Django这样的项目中,您可以使用Flup模块中的WSGI(Web服务器网关接口)服务器。

A WSGI server wraps a back-end process using one or more protocols:

WSGI服务器使用一个或多个协议包装后端进程:

  • FastCGI (calling a server process)
  • FastCGI(调用服务器进程)
  • SCGI (Simple Common Gateway Interface - a simpler FastCGI)
  • SCGI(简单的通用网关接口 - 更简单的FastCGI)
  • AJP (Apache JServ Protocol - a Java FastCGI)
  • AJP(Apache JServ协议 - Java FastCGI)
  • mod_python (runs pre-loaded code per request - uses lots of RAM)
  • mod_python(每个请求运行预加载的代码 - 使用大量RAM)
  • CGI (Common Gateway Interface, starts a process per request - slow)
  • CGI(通用网关接口,按请求启动进程 - 慢)

#4


1  

  • FastCGI is a kind of CGI which is long-live, which will always be running.
  • FastCGI是一种长寿命的CGI,它将一直运行。
  • With FastCGI, it'll take less time.
  • 使用FastCGI,它将花费更少的时间。
  • Because of multi-processes, FastCGI will cost more memory than CGI.
  • 由于多进程,FastCGI将比CGI花费更多内存。

In Detail Diff between FastCGI vs CGI

详细介绍FastCGI与CGI之间的差异