當(dāng)我們執(zhí)行下面的hello.py時(shí),使用的flask自帶的服務(wù)器,完成了web服務(wù)的啟動(dòng)。在生產(chǎn)環(huán)境中,flask自帶的服務(wù)器,無法滿足性能要求,我們這里采用Gunicorn做wsgi容器,來部署flask程序。Gunicorn(綠色獨(dú)角獸)是一個(gè)Python WSGI的HTTP服務(wù)器。從Ruby的獨(dú)角獸(Unicorn )項(xiàng)目移植。該Gunicorn服務(wù)器與各種Web框架兼容,實(shí)現(xiàn)非常簡單,輕量級的資源消耗。Gunicorn直接用命令啟動(dòng),不需要編寫配置文件,相對uWSGI要容易很多。

創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,包括網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、SEO優(yōu)化、網(wǎng)絡(luò)推廣、整站優(yōu)化營銷策劃推廣、電子商務(wù)、移動(dòng)互聯(lián)網(wǎng)營銷等。創(chuàng)新互聯(lián)為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制及解決方案,創(chuàng)新互聯(lián)核心團(tuán)隊(duì)十載專注互聯(lián)網(wǎng)開發(fā),積累了豐富的網(wǎng)站經(jīng)驗(yàn),為廣大企業(yè)客戶提供一站式企業(yè)網(wǎng)站建設(shè)服務(wù),在網(wǎng)站建設(shè)行業(yè)內(nèi)樹立了良好口碑。
區(qū)分幾個(gè)概念 :
WSGI:全稱是Web Server Gateway Interface(web服務(wù)器網(wǎng)關(guān)接口),它是一種規(guī)范,它是web服務(wù)器和web應(yīng)用程序之間的接口。它的作用就像是橋梁,連接在web服務(wù)器和web應(yīng)用框架之間。
uwsgi:是一種傳輸協(xié)議,用于定義傳輸信息的類型。
uWSGI:是實(shí)現(xiàn)了uwsgi協(xié)議WSGI的web服務(wù)器。
我們的部署方式: nginx + gunicorn + flask
web開發(fā)中,部署方式大致類似。簡單來說,前端代理使用Nginx主要是為了實(shí)現(xiàn)分流、轉(zhuǎn)發(fā)、負(fù)載均衡,以及分擔(dān)服務(wù)器的壓力。Nginx部署簡單,內(nèi)存消耗少,成本低。Nginx既可以做正向代理,也可以做反向代理。
正向代理 :請求經(jīng)過代理服務(wù)器從局域網(wǎng)發(fā)出,然后到達(dá)互聯(lián)網(wǎng)上的服務(wù)器。
特點(diǎn) :服務(wù)端并不知道真正的客戶端是誰。
反向代理 :請求從互聯(lián)網(wǎng)發(fā)出,先進(jìn)入代理服務(wù)器,再轉(zhuǎn)發(fā)給局域網(wǎng)內(nèi)的服務(wù)器。
特點(diǎn) :客戶端并不知道真正的服務(wù)端是誰。
區(qū)別 :正向代理的對象是客戶端。反向代理的對象是服務(wù)端。
查看命令行選項(xiàng) : 安裝gunicorn成功后,通過命令行的方式可以查看gunicorn的使用信息。
直接運(yùn)行 :
指定進(jìn)程和端口號 : -w: 表示進(jìn)程(worker)。 -b:表示綁定ip地址和端口號(bind)。--access-logfile:表示指定log文件的路徑
作為守護(hù)進(jìn)程后臺(tái)運(yùn)行 :
阿里云服務(wù)器默認(rèn)安裝到 /user/sbin/ 目錄,進(jìn)入目錄,啟動(dòng) ngnix:
Ubuntu 上配置 Nginx 也是很簡單,不要去改動(dòng)默認(rèn)的 nginx.conf 只需要將/etc/nginx/sites-available/default文件替換掉就可以了。
新建一個(gè) default 文件,添加以下內(nèi)容:
修改完成后重啟nginx即可。
Ubuntu 上配置 Nginx 另一種方法,cd 到 /etc/nginx/conf.d 文件夾,新建 xxx.conf 文件(xxx 可以是項(xiàng)目名,只要是 .conf 文件即可),寫入以下內(nèi)容:
需要監(jiān)聽 https 請求時(shí),寫入以下內(nèi)容:
書接上文 flask與SQLAlchemy ,我們了解到
這一步的的測試可以看 一個(gè)小型的資源管理站
這里與直接上結(jié)果。
原flask使用的WSGI是python,但是很明顯python作為HTTP解釋器是效率低下的。而且,直接運(yùn)行flask也是非常糟心的。比如集中配置,比如多進(jìn)程多線程,比如socket通信,比如log管理,比如進(jìn)程管理
將此文件放置在項(xiàng)目的根目錄,并創(chuàng)建文件夾uwsgi
詳見
flask+uWSGI已經(jīng)能實(shí)現(xiàn)webserver的功能了,但是更加優(yōu)秀的weberver還需要nginx的輔助。
Nginx(發(fā)音同engine x)是異步框架的網(wǎng)頁服務(wù)器,也可以用作反向代理、負(fù)載平衡器和HTTP緩存。
還有寫拓展處理 主要看服務(wù)配置
這里 nginx -s reload 已經(jīng)完成了服務(wù)配置。如果不想配置服務(wù),直接到nginx根目錄運(yùn)行 ./sbin/nginx
這里給大家推薦一個(gè)不錯(cuò)的平臺(tái):Cloudflare
Cloudflare
在使用之前我們需要更換自己的頂級域名代理商,這一步此處以騰訊云截圖:
跳過注冊等過程,我們直接進(jìn)入域名管理界面,看到
然后創(chuàng)建密鑰
xxx.pem
xxx.key
再扔到服務(wù)器上去。
最后再配置nginx
總結(jié)配置flask一般形態(tài)的生產(chǎn)環(huán)境nginx+uwsgi+flask
回到目錄
1.建立: F:\Python\flask文件夾路徑
2.安裝virtualenv,在此路徑下打開命令行窗口輸入:
3.新建一個(gè)目錄,并在里邊創(chuàng)建virtualenv環(huán)境,在DOS下
如圖:
這時(shí)你創(chuàng)建的myproject文件夾里面就多了一個(gè)venv文件夾:
4.激活虛擬環(huán)境
現(xiàn)在命令行前面多了個(gè)(venv)表示你在venv環(huán)境內(nèi)
5.在virtualenv里安裝Flask
完成。如圖:
6.驗(yàn)證是否安裝,你可以進(jìn)入 Python 解釋器,嘗試導(dǎo)入 Flask:
如果沒有報(bào)錯(cuò),那么就安裝成功了~如圖:
1.在myproject文件夾下打開命令行:
cd app #進(jìn)入app文件夾
mkdir static
mkdir templates
我們的應(yīng)用程序包是放置于 app 文件夾中。子文件夾 static 是我們存放靜態(tài)文件像圖片,JS文件以及樣式文件。子文件夾 templates 顯然是存放模板文件。
2.為我們的 app 包(文件 app/ init .py )創(chuàng)建一個(gè)簡單的初始化腳本:
上面的腳本簡單地創(chuàng)建應(yīng)用對象,接著導(dǎo)入視圖模塊,該模塊我們暫未編寫。
視圖是響應(yīng)來自網(wǎng)頁瀏覽器的請求的處理器。在 Flask 中,視圖是編寫成 Python 函數(shù)。每一個(gè)視圖函數(shù)是映射到一個(gè)或多個(gè)請求的 URL。
3.讓我們編寫第一個(gè)視圖函數(shù)(文件 app/views.py ):
其實(shí)這個(gè)視圖是非常簡單,它只是返回一個(gè)字符串,在客戶端的網(wǎng)頁瀏覽器上顯示。兩個(gè) route 裝飾器創(chuàng)建了從網(wǎng)址 / 以及 /index 到這個(gè)函數(shù)的映射。
4.能夠完整工作的 Web 應(yīng)用程序的最后一步是創(chuàng)建一個(gè)腳本,啟動(dòng)我們的應(yīng)用程序的開發(fā) Web 服務(wù)器。讓我們稱這個(gè)腳本為 run.py,并把它置于根目錄:
這個(gè)腳本簡單地從我們的 app 包中導(dǎo)入 app 變量并且調(diào)用它的 run 方法來啟動(dòng)服務(wù)器。請記住 app 變量中含有我們在之前創(chuàng)建的 Flask 實(shí)例。
5.要啟動(dòng)應(yīng)用程序,您只需運(yùn)行此腳本(run.py)
如圖:
6.在服務(wù)器初始化后,它將會(huì)監(jiān)聽 5000 端口等待著連接。現(xiàn)在打開你的網(wǎng)頁瀏覽器輸入如下 URL:
另外你也可以使用這個(gè) URL:
你看清楚了路由映射是如何工作的嗎?第一個(gè) URL 映射到 /,而第二個(gè) URL 映射到 /index。這兩個(gè)路由都關(guān)聯(lián)到我們的視圖函數(shù),因此它們的作用是一樣的。如果你輸入其它的網(wǎng)址,你將會(huì)獲得一個(gè)錯(cuò)誤,因?yàn)橹挥羞@兩個(gè) URL 映射到視圖函數(shù)。
你可以通過 Ctrl-C 來終止服務(wù)器
入門就到這里,比較簡單的。
下一章:
python輕量框架--Flask(模板詳細(xì)版)
新聞標(biāo)題:flask在騰訊云服務(wù)器 flask部署騰訊云
網(wǎng)站路徑:http://www.js-pz168.com/article18/ddjocgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、品牌網(wǎng)站制作、企業(yè)建站、網(wǎng)站制作、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)