flask是個(gè)輕量級(jí)的網(wǎng)站框架,如果網(wǎng)站僅僅是幾個(gè)簡(jiǎn)單的頁(yè)面與功能接口的話,使用它比其他諸如django等框架要方便很多。然而當(dāng)網(wǎng)站構(gòu)建好后,需要部署到服務(wù)器,此時(shí)需要另外兩個(gè)工具:用于讓python與網(wǎng)站服務(wù)器相連的uwsgi,以及用于自動(dòng)啟動(dòng)并守護(hù)的supervisor。 flask和uwsgi都支持python2和python3,但supervisor只支持python2,所以如果網(wǎng)站app一定要用python3的話則一定會(huì)出現(xiàn)他們裝在不同的虛擬環(huán)境下。不過(guò)不怕,這是可以解決的。 筆者的網(wǎng)站app需要在anaconda3環(huán)境下(因?yàn)橐玫胶芏嗫茖W(xué)庫(kù)),雖然可以移植到python2,只是python3是趨勢(shì),anaconda也提供了太多的便利,所以就不折騰環(huán)境。 uwsgi與flask安裝與配置 這兩個(gè)我裝在同一個(gè)環(huán)境下,命名為web (web) $ pip install flask
(web) $ pip install uwsgi 假設(shè)anaconda的目錄是/home/user/anaconda3那么python的位置應(yīng)該是/home/user/anaconda3/envs/web 這個(gè)很重要,因?yàn)椴辉谶@個(gè)環(huán)境下將沒(méi)有uwsgi也無(wú)法啟動(dòng)flask。 假設(shè)網(wǎng)站的目錄是 顯然uwsgi.ini和superviosrd.conf就是配置文件,后者在下章介紹。 uwsgi的配置如下 如果使用logto要注意user用戶是否有權(quán)利在/var/log/uwsgi下創(chuàng)建文件(包括文件夾是否存在) 更多uwsgi的配置可以看官方文檔quick start以及Configuration。 這里 callable 就是 manage.py 文件中的 flask 對(duì)象,一般我們用 app,參考flask官方deomo。 supervisor 安裝與配置首先先看下supervisor如何配置 雖然設(shè)定了pythonhome這個(gè)環(huán)境變量,不過(guò)依然要些uwsgi的絕對(duì)路徑,畢竟在 py2的環(huán)境下是沒(méi)有uwsgi這個(gè)程序的。 安裝supervisor需要切換到一個(gè)python2的環(huán)境,這里我依然是用anaconda添加虛擬環(huán)境 最后一行命令就是執(zhí)行supervisor,(注意有個(gè)d)
如果需要做端口映射之類(lèi)的,可以再用nginx之類(lèi),或者直接就把uwsgi改為80端口也可以。 |
|
來(lái)自: lihuimail > 《待分類(lèi)》