摘要:使用開發(fā)部署,使用模式的用開發(fā)了服務(wù)端的,記錄部署上服務(wù)器的過程,以供后續(xù)使用。退出虛擬環(huán)境如果服務(wù)器中沒有安裝,先進(jìn)行安裝增加配置文件創(chuàng)建配置文件編輯內(nèi)容如下更新會提示相關(guān)的進(jìn)程已經(jīng)被加入要關(guān)閉相關(guān)的進(jìn)程可以用開啟可以用
使用flask開發(fā)api——部署flask,使用gunicorn+gevent模式的http server
用flask開發(fā)了服務(wù)端的api,記錄部署上服務(wù)器的過程,以供后續(xù)使用。
安裝python3.5本身服務(wù)器已經(jīng)安裝了python3,并且版本為3.5,這里不重新安裝,如果服務(wù)器中沒有安裝python3,則進(jìn)行安裝
$ sudo apt-get install python3.5安裝pip3
我們需要用pip來使用第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
每個項目可能需要用到的環(huán)境不一樣,為了避免影響整個服務(wù)器的環(huán)境,我們給每個項目一個獨(dú)立的運(yùn)行環(huán)境,需要用到virtualenv
$ sudo pip3 install virtualenv //如果安裝成功,會顯示 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)建成功會有如下說明 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 # 這時命令行路徑前面會出現(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安裝項目中需要的python 模塊 1.安裝Flask
$ pip3 install Flask # 安裝成功會提示如下: Successfully installed Flask-0.12.2 Werkzeug-0.12.2 click-6.7 itsdangerous-0.24 # 也可以用sudo pip3 list來查看2. 安裝Flask-RESTful
$ pip3 install Flask-RESTful # 安裝成功會提示如下: Successfully installed Flask-RESTful-0.3.6 aniso8601-1.3.0 python-dateutil-2.6.1 pytz-2017.2 # 也可以用sudo pip3 list來查看3. 安裝pyMySQL
$ pip3 install pyMySQL # 安裝成功會提示如下: Successfully installed pyMySQL-0.7.11 # 也可以用sudo pip3 list來查看4. 安裝gunicorn
$ pip3 install gunicorn # 安裝成功會提示如下: Successfully installed gunicorn-19.7.1 # 也可以用sudo pip3 list來查看 # 創(chuàng)建gunicorn存放日志文件夾 $ sudo mkdir /var/log/gunicorn # 更改權(quán)限 $ sudo chmod -R 777 /var/log/gunicorn5.安裝gevent
$ pip3 install gevent # 安裝成功會提示如下: Successfully installed gevent-1.2.2 greenlet-0.4.12 # 也可以用sudo pip3 list來查看安裝項目
將項目克隆下來
$ git clone git@xxx.xxx.xxx/your_project_name.git
進(jìn)入到項目下,測試gunicorn是否正確運(yùn)行
$ cd your_project_name # 更新項目日志文件夾的權(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 # 開啟后,可以在客戶端中測試訪問 # crtl+c關(guān)閉安裝supervisor做守護(hù)進(jìn)程
由于gunicorn在控制面板關(guān)閉后,進(jìn)程也會退出,需要使用supervisor做后臺守護(hù)。
退出虛擬環(huán)境
$ deactivate
如果服務(wù)器中沒有安裝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 # 會提示相關(guān)的進(jìn)程已經(jīng)被加入 your_project_name: added process group # 要關(guān)閉相關(guān)的進(jìn)程可以用 $ sudo supervisorctl stop your_project_name # 開啟可以用 $ sudo supervisorctl start your_project_name
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/40964.html
摘要:基于網(wǎng),分享項目的組網(wǎng)架構(gòu)和部署。項目組網(wǎng)架構(gòu)架構(gòu)說明流項目訪問分為兩個流,通過分兩個端口暴露給外部使用數(shù)據(jù)流用戶訪問網(wǎng)站。通過進(jìn)行配置,使用作為異步隊列來存儲任務(wù),并將處理結(jié)果存儲在中。 基于Raindrop網(wǎng),分享項目的組網(wǎng)架構(gòu)和部署。 項目組網(wǎng)架構(gòu) showImg(https://cloud.githubusercontent.com/assets/7239657/1015704...
摘要:解決過程關(guān)于什么是是一個上被廣泛使用的高性能的。和大多數(shù)的框架兼容,并具有實(shí)現(xiàn)簡單,輕量級,高性能等特點(diǎn)。為了解決這個問題,在實(shí)例化對象的時候要加上參數(shù)。參考用來,能否長連接連接從未發(fā)布和在上使用 問題描述 使用Flask開發(fā)的Web服務(wù),部署在服務(wù)器上使用的是gunicorn manage:app -k gevent -w 4 某日告警,說瀏覽器崩了,當(dāng)時急急忙忙的重啟,...
摘要:解決過程關(guān)于什么是是一個上被廣泛使用的高性能的。和大多數(shù)的框架兼容,并具有實(shí)現(xiàn)簡單,輕量級,高性能等特點(diǎn)。為了解決這個問題,在實(shí)例化對象的時候要加上參數(shù)。參考用來,能否長連接連接從未發(fā)布和在上使用 問題描述 使用Flask開發(fā)的Web服務(wù),部署在服務(wù)器上使用的是gunicorn manage:app -k gevent -w 4 某日告警,說瀏覽器崩了,當(dāng)時急急忙忙的重啟,...
摘要:側(cè)邊欄選用提到的。將改成來訪問的形式組織代碼出現(xiàn)循環(huán)的問題往往意味著代碼的布局有問題,可以合并或者分離競爭資源。分離的話就是把需要的資源提取到一個第三方文件去。總之就是將循環(huán)變成單向。對于周期性任務(wù)缺一不可。其他任務(wù)可僅運(yùn)行。 1、bootstrap代碼片段: 如果你沒有藝術(shù)細(xì)胞,偷懶的方法就是到這上面去找,比如登錄框界面等。側(cè)邊欄選用:http://www.designerslib....
摘要:側(cè)邊欄選用提到的。將改成來訪問的形式組織代碼出現(xiàn)循環(huán)的問題往往意味著代碼的布局有問題,可以合并或者分離競爭資源。分離的話就是把需要的資源提取到一個第三方文件去。總之就是將循環(huán)變成單向。對于周期性任務(wù)缺一不可。其他任務(wù)可僅運(yùn)行。 1、bootstrap代碼片段: 如果你沒有藝術(shù)細(xì)胞,偷懶的方法就是到這上面去找,比如登錄框界面等。側(cè)邊欄選用:http://www.designerslib....
閱讀 930·2021-10-27 14:14
閱讀 1753·2021-10-11 10:59
閱讀 1325·2019-08-30 13:13
閱讀 3160·2019-08-29 15:17
閱讀 2759·2019-08-29 13:48
閱讀 498·2019-08-26 13:36
閱讀 2090·2019-08-26 13:25
閱讀 866·2019-08-26 12:24