cgi---------fastcgi------------------wsgi--------------uwsgi

uWSGI是一个​​Web服务器​​,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。



 

 

 




背景知识




基于Python的Web项目部署起来真是头痛,常见的部署方法有:

◆fcgi:用spawn-fcgi或者框架自带的工具对各个project分别生成监听进程,然后和http服务互动。

◆wsgi:利用http服务的mod_wsgi模块来跑各个project。

无论哪种都很麻烦,apache的mod_wsgi配置起来麻烦,内存占用还大,如果要加上nginx作为​​静态页面​​的服务器那就更麻烦了;

如果Python中能有个什么东西像php-cgi一样监听同一端口,进行统一管理和​​负载平衡​​,那真是能省下大量的部署功夫。这就是uwsgi为什么会诞生!


介绍




uWSGI,既不用wsgi协议也不用fcgi协议,而是自创了一个uwsgi的协议,据说该协议大约是fcgi协议的10倍那么快。

uWSGI的主要特点如下:

◆超快的性能。

◆低内存占用(实测为apache2的mod_wsgi的一半左右)。

◆多app管理。

◆详尽的日志功能(可以用来分析app性能和瓶颈)。

◆高度可定制(内存大小限制,服务一定次数后重启等)。