WSGI、CGI、FastCGI和mod_python在Python中的区别和用途是什么?

84 投票
4 回答
67458 浏览
提问于 2025-04-16 05:30

我只是想知道市面上不同的CGI(通用网关接口)有什么区别和优点。哪种最适合用来运行Python脚本?我该怎么告诉脚本使用哪种呢?

4 个回答

13

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

WSGI服务器通过一种或多种协议来包装后端进程:

在2019年,WSGI被ASGI(异步服务器网关接口)取代,ASGI被像FastAPI这样的框架使用,运行在像Uvicorn这样的服务器上,速度要快得多

19

这里还有一个很不错的背景资料,介绍了CGI、WSGI和其他选择,内容来自官方的Python使用指南。你可以在这里查看:http://docs.python.org/2/howto/webservers.html

49

这是对你问题的部分回答,涉及到scgi。

CGI与FCGI的对比

我懒得自己写,直接引用维基百科的内容: http://en.wikipedia.org/wiki/FastCGI

FastCGI不是为每个请求都创建一个新的进程,而是使用持久的进程来处理这些请求。可以配置多个进程,这样可以提高稳定性和扩展性。每个FastCGI进程在其生命周期内可以处理多个请求,从而避免了每次请求都创建和终止进程的开销。

撰写回答