FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病的fork-and-execute 模式)。目前支持语言有 PHP、C/C++、Java、Perl、Tcl、Python、SmallTalk、Ruby等,相关模块在Apache,IIS, Lighttpd,Nginx等流行的服务器上均是可用的。
WSGI(Python Web Server Gateway Interface,Web服务器网关接口,缩写为WSGI)是Python应用程序或框架和Web服务器之间的一种接口,它没有官方的实现, 更像一个协议,只要遵照这些协议,WSGI应用(Application)都可以在任何实现(Server)上运行, 反之亦然。
uWSGI既不用WSGI协议也不用FCGI协议,而是自创了一个uWSGI的协议。其主要特点如下:
uWSGI既不用WSGI协议也不用FCGI协议,而是自创了一个uWSGI的协议。其主要特点如下:
- 超快的性能。
- 低内存占用(实测为apache2的mod_wsgi的一半左右)。
- 多app管理。
- 详尽的日志功能(可以用来分析app性能和瓶颈)。
- 高度可定制(内存大小限制,服务一定次数后重启等)。
从《fcgi vs. gunicorn vs. uWSGI》一文中可以看出,uWSGI的性能明显是最优的。