从网上我发现WSGI是python web开发/框架的CGI。 FCGI似乎是各种语言的更通用的网关。不知道两者在参考语言python和C / ++时的性能差异。
答案 0 :(得分:71)
正确,WSGI是Python编程API定义,FASTCGI是与语言无关的套接字协议定义。实际上,它们处于不同的层,WSGI是更高层。换句话说,可以在使用FASTCGI与Web服务器进行通信的情况下实现WSGI,但不是相反。
通常,FASTCGI是套接字线协议意味着您始终需要某种类型的编程接口才能使用它。对于Python,一个这样的选项是WSGI。由于FASTCGI只是达到目的的手段,因此在这种情况下无法将其性能与WSGI进行比较,因为WSGI不是类似的套接字协议,而是FASTCGI本身的用户。
可以尝试在FASTCGI之上比较不同语言接口的性能,但总的来说,这本身就没有意义,因为较低的网络层和服务器请求处理不是瓶颈。相反,您的应用程序代码和数据库将是。
答案 1 :(得分:25)
他们是两回事。 WSGI是用于编写Web应用程序的Python特定接口。有任何Web服务器协议的包装器可以提供WSGI接口。 FastGCI(FCGI)是此类Web服务器协议之一。因此,WSGI是一个抽象层,而CGI / FastCGI / mod_python是实际Web服务器与应用程序通信的方式。有些代码必须将本机接口转换为WSGI(wsgiref
中有一个CGI模块,FastCGI有flup
等)。还有用于Apache的mod_wsgi,它直接在Apache模块中进行转换,因此您不需要任何Python包装器。