小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Ubuntu 12.04 下部署 Nginx+uWSGI+Flask

 ccccshq 2015-04-24

Flask本身就可以直接啟動(dòng)HTTP服務(wù)器,但是受限于管理、部署、性能等問題,在生產(chǎn)環(huán)境中,我們一般不會(huì)使用Flask自身所帶的HTTP服務(wù)器。

從現(xiàn)在已有的實(shí)踐來看,對(duì)于Flask,比較好的部署方式是使用uWSGI做WSGI容器,Nginx做前端服務(wù)器。這樣做的好處在于:

1. uWSGI性能好,提供的功能也很多,運(yùn)維方便。
2. Nginx對(duì)于靜態(tài)文件處理較好,而且默認(rèn)支持uWSGI協(xié)議,在負(fù)載均衡和壓力控制上都可以很方便的實(shí)現(xiàn)。

現(xiàn)在說一下具體的部署步驟:

因?yàn)楸救吮容^喜歡Ubuntu Server做服務(wù)器操作系統(tǒng),所以這些操作只適于Ubuntu系統(tǒng)。在Ubuntu中我們就應(yīng)該安裝Ubuntu的方式進(jìn)行部署運(yùn)維,而不是進(jìn)行編譯安裝,通過ubuntu apt源安裝部署,不僅在整體風(fēng)格上符合系統(tǒng)風(fēng)格,而且提供給配置和運(yùn)維巨大方便。

首先更新軟件源:

sudo apt-get update

安裝Nginx:

sudo apt-get install nginx

安裝uWSGI以及uWSGI對(duì)于Python的支持:

sudo apt-get install uwsgi uwsgi-plugin-python

安裝virtualenv:
這里是一個(gè)個(gè)人選擇問題,因?yàn)楸姸鄍ython包也可以通過apt源安裝。
我個(gè)人習(xí)慣是,一些python工具通過源安裝,比如supervisor,管理和升級(jí)都比較方便,而python一些第三方庫還是在virtualenv中通過pip安裝,像是virtualenv這樣的基礎(chǔ)工具還是通過源安裝。

sudo apt-get install python-virtualenv

建立Python環(huán)境:

mkdir -p /var/virenvs
cd /var/virenvs
virtualenv myenv

安裝Flask:

cd myenv
. bin/activate
pip install flask

建議使用pip的freeze和install -r requirement_file進(jìn)行環(huán)境部署。

假設(shè)我們的項(xiàng)目路徑在 /var/virenvs/myenv/myproject,這時(shí)我們可以通過git或者其他什么方式把程序部署上來。

給項(xiàng)目目錄配置權(quán)限,nginx和uwsgi默認(rèn)是以www-data用戶和組來運(yùn)行:

chown -R www-data:www-data /var/virenvs/myenv/myproject
chmod -R 775 /var/virenvs/myenv/myproject

對(duì)于nginx和uwsgi我們可以使用vhost方式進(jìn)行部署,這樣既能保證每個(gè)項(xiàng)目使用獨(dú)立的virtualenv又可以,共用一個(gè)uWSGI池,這樣在使用、部署和管理上都比較方便。

vim /etc/nginx/site-available/myproject

server {
	listen 80;
	server_name hostname;
    
	location /static {
		alias /var/virenvs/myenv/myproject/static;
	}
    
	location / {
		include uwsgi_params;
		uwsgi_pass 127.0.0.1:9001;
		uwsgi_param UWSGI_PYHOME /var/virenvs/myenv;
		uwsgi_param UWSGI_CHDIR /var/virenvs/myenv/myproject;
		uwsgi_param UWSGI_MODULE mywebsite;
		uwsgi_param UWSGI_CALLABLE app;
	}
    
	error_page 404 /404.html;
}

其中mywebsite為項(xiàng)目目錄下的mywebsite.py文件,UWSGI_CALLABLE為其中的Flask實(shí)例名。

建立軟連接到enabled目錄

ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/myproject

uwsgi配置

vim /etc/uwsgi/apps-available/myuwsgi.ini

[uwsgi]
plugins=python
vhost=true
socket=127.0.0.1:9001

uwsgi還有很多其他配置項(xiàng),生成環(huán)境中需要好好配置。

建立軟連接到enabled目錄

ln -s /etc/uwsgi/apps-available/myuwsgi.ini /etc/uwsgi/apps-enabled/myuwsgi.ini

重啟服務(wù)

service nginx restart
service uwsgi restart

部署完成

轉(zhuǎn)自:http:///2012/08/06/ubuntu-12-04-%E4%B8%8B%E9%83%A8%E7%BD%B2-nginxuwsgiflask/

========================================================================================

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多