|
個(gè)人覺(jué)得php最方便的就是deployment了,只要把php文件丟到支持php的路徑里面,然后訪問(wèn)那個(gè)路徑就能使用了;無(wú)論給主機(jī)添加多少php應(yīng)用,只要把目錄改好就沒(méi)你的事了,完全不用關(guān)心php-cgi運(yùn)行得如何,deployment極為方便。
反觀Python,部屬起來(lái)真是頭痛,常見(jiàn)的部署方法有:
- fcgi:用spawn-fcgi或者框架自帶的工具對(duì)各個(gè)project分別生成監(jiān)聽(tīng)進(jìn)程,然后和http服務(wù)互動(dòng)
- wsgi:利用http服務(wù)的mod_wsgi模塊來(lái)跑各個(gè)project
無(wú)論哪種都很麻煩,apache的mod_wsgi配置起來(lái)很麻煩,內(nèi)存占用還大,如果要加上nginx作為靜態(tài)頁(yè)面的服務(wù)器那就更麻煩了;反正我的應(yīng)用基本上到后來(lái)都是是各個(gè)project各自為戰(zhàn),且不說(shuō)管理上的混亂,這樣對(duì)負(fù)載也是不利的,空閑的project和繁忙的project同樣需要占用內(nèi)存,很容易出現(xiàn)站著茅坑不拉屎的現(xiàn)象。
如果有個(gè)啥東東能像php-cgi一樣監(jiān)聽(tīng)同一端口,進(jìn)行統(tǒng)一管理和負(fù)載平衡,那真是能省下大量的部署功夫。偶然看到了uWSGI,才發(fā)現(xiàn)居然一直不知道有那么方便地統(tǒng)一部署工具。
uWSGI,既不用wsgi協(xié)議也不用fcgi協(xié)議,而是自創(chuàng)了一個(gè)uwsgi的協(xié)議,據(jù)說(shuō)該協(xié)議大約是fcgi協(xié)議的10倍那么快,有個(gè)比較見(jiàn)下圖
uWSGI的主要特點(diǎn)如下,其中一些功能讓我感動(dòng)得淚流滿面
- 超快的性能
- 低內(nèi)存占用(實(shí)測(cè)為apache2的mod_wsgi的一半左右)
- 多app管理(終于不用冥思苦想下個(gè)app用哪個(gè)端口比較好了-.-)
- 詳盡的日志功能(可以用來(lái)分析app性能和瓶頸)
- 高度可定制(內(nèi)存大小限制,服務(wù)一定次數(shù)后重啟等)
總而言之uwgi是個(gè)部署用的好東東,正如uWSGI作者所吹噓的:
If you are searching for a simple wsgi-only server, uWSGI is not for you, but if you are building a real (production-ready) app that need to be rock-solid, fast and easy to distribute/optimize for various load-average, you will pathetically and morbidly fall in love (we hope) with uWSGI.
正式開(kāi)工
uwsgi的文檔雖然蠻多也很詳細(xì),但是他們網(wǎng)站的排版真是讓人無(wú)語(yǔ),粗粗看上去根本不知道文檔在哪里。其實(shí)是在這里:http://projects.unbit.it/uwsgi/wiki/Doc
0.安裝uwsgi
ubuntu有uwsgi的ppa
add-apt-repository ppa:stevecrozz/ppa
apt-get update
apt-get install uwsgi
it知識(shí)庫(kù):配置Nginx+uwsgi更方便地部署python應(yīng)用,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。