摘要:使用開(kāi)發(fā)部署,使用模式的用開(kāi)發(fā)了服務(wù)端的,記錄部署上服務(wù)器的過(guò)程,以供后續(xù)使用。退出虛擬環(huán)境如果服務(wù)器中沒(méi)有安裝,先進(jìn)行安裝增加配置文件創(chuàng)建配置文件編輯內(nèi)容如下更新會(huì)提示相關(guān)的進(jìn)程已經(jīng)被加入要關(guān)閉相關(guān)的進(jìn)程可以用開(kāi)啟可以用
使用flask開(kāi)發(fā)api——部署flask,使用gunicorn+gevent模式的http server
用flask開(kāi)發(fā)了服務(wù)端的api,記錄部署上服務(wù)器的過(guò)程,以供后續(xù)使用。
安裝python3.5本身服務(wù)器已經(jīng)安裝了python3,并且版本為3.5,這里不重新安裝,如果服務(wù)器中沒(méi)有安裝python3,則進(jìn)行安裝
$ sudo apt-get install python3.5安裝pip3
我們需要用pip來(lái)使用第3方模塊,先安裝pip
# 下載安裝腳本 $ curl -O https://bootstrap.pypa.io/get-pip.py # 安裝 sudo python3 get-pip.py
安裝成功后,查看安裝版本,確定與你目前的python3版本一致
$ pip3 -V //顯示的版本信息 pip 9.0.1 from /usr/local/lib/python3.5/dist-packages (python 3.5)安裝virtualenv
每個(gè)項(xiàng)目可能需要用到的環(huán)境不一樣,為了避免影響整個(gè)服務(wù)器的環(huán)境,我們給每個(gè)項(xiàng)目一個(gè)獨(dú)立的運(yùn)行環(huán)境,需要用到virtualenv
$ sudo pip3 install virtualenv //如果安裝成功,會(huì)顯示 Successfully installed virtualenv-15.1.0創(chuàng)建虛擬環(huán)境
$ cd /var/www/your_project_name # 創(chuàng)建虛擬環(huán)境,其中py35env為你自定義的環(huán)境名稱 $ virtualenv -p python3 py35env # 創(chuàng)建成功會(huì)有如下說(shuō)明 Already using interpreter /usr/bin/python3 Using base prefix "/usr" New python executable in /var/www/your_project_name/py35env/bin/python3 Also creating executable in /var/www/your_project_name/py35env/bin/python Installing setuptools, pip, wheel...done. # 激活虛擬環(huán)境 $ source py35env/bin/activate # 這時(shí)命令行路徑前面會(huì)出現(xiàn)你的虛擬環(huán)境名,例如: (py35env) ubuntu@ip-10-0-0-119:/var/www/your_project_name$ # 查看你目前的插件,有些可能之前系統(tǒng)python環(huán)境已經(jīng)安裝了,你可以不用重復(fù)安裝 $ sudo pip3 list安裝項(xiàng)目中需要的python 模塊 1.安裝Flask
$ pip3 install Flask # 安裝成功會(huì)提示如下: Successfully installed Flask-0.12.2 Werkzeug-0.12.2 click-6.7 itsdangerous-0.24 # 也可以用sudo pip3 list來(lái)查看2. 安裝Flask-RESTful
$ pip3 install Flask-RESTful # 安裝成功會(huì)提示如下: Successfully installed Flask-RESTful-0.3.6 aniso8601-1.3.0 python-dateutil-2.6.1 pytz-2017.2 # 也可以用sudo pip3 list來(lái)查看3. 安裝pyMySQL
$ pip3 install pyMySQL # 安裝成功會(huì)提示如下: Successfully installed pyMySQL-0.7.11 # 也可以用sudo pip3 list來(lái)查看4. 安裝gunicorn
$ pip3 install gunicorn # 安裝成功會(huì)提示如下: Successfully installed gunicorn-19.7.1 # 也可以用sudo pip3 list來(lái)查看 # 創(chuàng)建gunicorn存放日志文件夾 $ sudo mkdir /var/log/gunicorn # 更改權(quán)限 $ sudo chmod -R 777 /var/log/gunicorn5.安裝gevent
$ pip3 install gevent # 安裝成功會(huì)提示如下: Successfully installed gevent-1.2.2 greenlet-0.4.12 # 也可以用sudo pip3 list來(lái)查看安裝項(xiàng)目
將項(xiàng)目克隆下來(lái)
$ git clone [email protected]/your_project_name.git
進(jìn)入到項(xiàng)目下,測(cè)試gunicorn是否正確運(yùn)行
$ cd your_project_name # 更新項(xiàng)目日志文件夾的權(quán)限 $ sudo chmod -R 777 logs $ gunicorn -b 0.0.0.0:5000 manager:app # 如果提示如下: [2017-10-20 09:44:48 +0000] [21856] [INFO] Starting gunicorn 19.7.1 [2017-10-20 09:44:48 +0000] [21856] [INFO] Listening at: http://0.0.0.0:5000 (21856) [2017-10-20 09:44:48 +0000] [21856] [INFO] Using worker: sync [2017-10-20 09:44:49 +0000] [21859] [INFO] Booting worker with pid: 21859 # 開(kāi)啟后,可以在客戶端中測(cè)試訪問(wèn) # crtl+c關(guān)閉安裝supervisor做守護(hù)進(jìn)程
由于gunicorn在控制面板關(guān)閉后,進(jìn)程也會(huì)退出,需要使用supervisor做后臺(tái)守護(hù)。
退出虛擬環(huán)境
$ deactivate
如果服務(wù)器中沒(méi)有安裝supervisor,先進(jìn)行安裝
$ sudo apt-get install supervisor
增加supervisor 配置文件
$ cd /etc/supervisor/conf.d # 創(chuàng)建配置文件 $ sudo touch your_project_name.conf # 編輯 $ sudo vi your_project_name.conf # 內(nèi)容如下 [program:your_project_name] command=/var/www/your_project_name/py35env/bin/gunicorn manager:app -c /var/www/your_project_name/your_project_name/gun.py directory=/var/www/your_project_name/your_project_name autostart=true autorestart=true stdout_logfile=/var/log/gunicorn/gunicorn_supervisor.log stderr_logfile=/var/log/gunicorn/gunicorn_supervisor_err.log
更新supervisor
$ sudo supervisorctl update # 會(huì)提示相關(guān)的進(jìn)程已經(jīng)被加入 your_project_name: added process group # 要關(guān)閉相關(guān)的進(jìn)程可以用 $ sudo supervisorctl stop your_project_name # 開(kāi)啟可以用 $ sudo supervisorctl start your_project_name
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/40964.html
摘要:基于網(wǎng),分享項(xiàng)目的組網(wǎng)架構(gòu)和部署。項(xiàng)目組網(wǎng)架構(gòu)架構(gòu)說(shuō)明流項(xiàng)目訪問(wèn)分為兩個(gè)流,通過(guò)分兩個(gè)端口暴露給外部使用數(shù)據(jù)流用戶訪問(wèn)網(wǎng)站。通過(guò)進(jìn)行配置,使用作為異步隊(duì)列來(lái)存儲(chǔ)任務(wù),并將處理結(jié)果存儲(chǔ)在中。 基于Raindrop網(wǎng),分享項(xiàng)目的組網(wǎng)架構(gòu)和部署。 項(xiàng)目組網(wǎng)架構(gòu) showImg(https://cloud.githubusercontent.com/assets/7239657/1015704...
摘要:解決過(guò)程關(guān)于什么是是一個(gè)上被廣泛使用的高性能的。和大多數(shù)的框架兼容,并具有實(shí)現(xiàn)簡(jiǎn)單,輕量級(jí),高性能等特點(diǎn)。為了解決這個(gè)問(wèn)題,在實(shí)例化對(duì)象的時(shí)候要加上參數(shù)。參考用來(lái),能否長(zhǎng)連接連接從未發(fā)布和在上使用 問(wèn)題描述 使用Flask開(kāi)發(fā)的Web服務(wù),部署在服務(wù)器上使用的是gunicorn manage:app -k gevent -w 4 某日告警,說(shuō)瀏覽器崩了,當(dāng)時(shí)急急忙忙的重啟,...
摘要:解決過(guò)程關(guān)于什么是是一個(gè)上被廣泛使用的高性能的。和大多數(shù)的框架兼容,并具有實(shí)現(xiàn)簡(jiǎn)單,輕量級(jí),高性能等特點(diǎn)。為了解決這個(gè)問(wèn)題,在實(shí)例化對(duì)象的時(shí)候要加上參數(shù)。參考用來(lái),能否長(zhǎng)連接連接從未發(fā)布和在上使用 問(wèn)題描述 使用Flask開(kāi)發(fā)的Web服務(wù),部署在服務(wù)器上使用的是gunicorn manage:app -k gevent -w 4 某日告警,說(shuō)瀏覽器崩了,當(dāng)時(shí)急急忙忙的重啟,...
摘要:側(cè)邊欄選用提到的。將改成來(lái)訪問(wèn)的形式組織代碼出現(xiàn)循環(huán)的問(wèn)題往往意味著代碼的布局有問(wèn)題,可以合并或者分離競(jìng)爭(zhēng)資源。分離的話就是把需要的資源提取到一個(gè)第三方文件去??傊褪菍⒀h(huán)變成單向。對(duì)于周期性任務(wù)缺一不可。其他任務(wù)可僅運(yùn)行。 1、bootstrap代碼片段: 如果你沒(méi)有藝術(shù)細(xì)胞,偷懶的方法就是到這上面去找,比如登錄框界面等。側(cè)邊欄選用:http://www.designerslib....
摘要:側(cè)邊欄選用提到的。將改成來(lái)訪問(wèn)的形式組織代碼出現(xiàn)循環(huán)的問(wèn)題往往意味著代碼的布局有問(wèn)題,可以合并或者分離競(jìng)爭(zhēng)資源。分離的話就是把需要的資源提取到一個(gè)第三方文件去。總之就是將循環(huán)變成單向。對(duì)于周期性任務(wù)缺一不可。其他任務(wù)可僅運(yùn)行。 1、bootstrap代碼片段: 如果你沒(méi)有藝術(shù)細(xì)胞,偷懶的方法就是到這上面去找,比如登錄框界面等。側(cè)邊欄選用:http://www.designerslib....
閱讀 970·2021-10-27 14:14
閱讀 1771·2021-10-11 10:59
閱讀 1344·2019-08-30 13:13
閱讀 3184·2019-08-29 15:17
閱讀 2778·2019-08-29 13:48
閱讀 514·2019-08-26 13:36
閱讀 2108·2019-08-26 13:25
閱讀 878·2019-08-26 12:24