摘要:使用開發部署,使用模式的用開發了服務端的,記錄部署上服務器的過程,以供后續使用。退出虛擬環境如果服務器中沒有安裝,先進行安裝增加配置文件創建配置文件編輯內容如下更新會提示相關的進程已經被加入要關閉相關的進程可以用開啟可以用
使用flask開發api——部署flask,使用gunicorn+gevent模式的http server
用flask開發了服務端的api,記錄部署上服務器的過程,以供后續使用。
安裝python3.5本身服務器已經安裝了python3,并且版本為3.5,這里不重新安裝,如果服務器中沒有安裝python3,則進行安裝
$ 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
每個項目可能需要用到的環境不一樣,為了避免影響整個服務器的環境,我們給每個項目一個獨立的運行環境,需要用到virtualenv
$ sudo pip3 install virtualenv //如果安裝成功,會顯示 Successfully installed virtualenv-15.1.0創建虛擬環境
$ cd /var/www/your_project_name # 創建虛擬環境,其中py35env為你自定義的環境名稱 $ virtualenv -p python3 py35env # 創建成功會有如下說明 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. # 激活虛擬環境 $ source py35env/bin/activate # 這時命令行路徑前面會出現你的虛擬環境名,例如: (py35env) ubuntu@ip-10-0-0-119:/var/www/your_project_name$ # 查看你目前的插件,有些可能之前系統python環境已經安裝了,你可以不用重復安裝 $ 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來查看 # 創建gunicorn存放日志文件夾 $ sudo mkdir /var/log/gunicorn # 更改權限 $ 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
進入到項目下,測試gunicorn是否正確運行
$ cd your_project_name # 更新項目日志文件夾的權限 $ 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關閉安裝supervisor做守護進程
由于gunicorn在控制面板關閉后,進程也會退出,需要使用supervisor做后臺守護。
退出虛擬環境
$ deactivate
如果服務器中沒有安裝supervisor,先進行安裝
$ sudo apt-get install supervisor
增加supervisor 配置文件
$ cd /etc/supervisor/conf.d # 創建配置文件 $ sudo touch your_project_name.conf # 編輯 $ sudo vi your_project_name.conf # 內容如下 [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 # 會提示相關的進程已經被加入 your_project_name: added process group # 要關閉相關的進程可以用 $ sudo supervisorctl stop your_project_name # 開啟可以用 $ sudo supervisorctl start your_project_name
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40964.html
摘要:基于網,分享項目的組網架構和部署。項目組網架構架構說明流項目訪問分為兩個流,通過分兩個端口暴露給外部使用數據流用戶訪問網站。通過進行配置,使用作為異步隊列來存儲任務,并將處理結果存儲在中。 基于Raindrop網,分享項目的組網架構和部署。 項目組網架構 showImg(https://cloud.githubusercontent.com/assets/7239657/1015704...
摘要:解決過程關于什么是是一個上被廣泛使用的高性能的。和大多數的框架兼容,并具有實現簡單,輕量級,高性能等特點。為了解決這個問題,在實例化對象的時候要加上參數。參考用來,能否長連接連接從未發布和在上使用 問題描述 使用Flask開發的Web服務,部署在服務器上使用的是gunicorn manage:app -k gevent -w 4 某日告警,說瀏覽器崩了,當時急急忙忙的重啟,...
摘要:解決過程關于什么是是一個上被廣泛使用的高性能的。和大多數的框架兼容,并具有實現簡單,輕量級,高性能等特點。為了解決這個問題,在實例化對象的時候要加上參數。參考用來,能否長連接連接從未發布和在上使用 問題描述 使用Flask開發的Web服務,部署在服務器上使用的是gunicorn manage:app -k gevent -w 4 某日告警,說瀏覽器崩了,當時急急忙忙的重啟,...
摘要:側邊欄選用提到的。將改成來訪問的形式組織代碼出現循環的問題往往意味著代碼的布局有問題,可以合并或者分離競爭資源。分離的話就是把需要的資源提取到一個第三方文件去。總之就是將循環變成單向。對于周期性任務缺一不可。其他任務可僅運行。 1、bootstrap代碼片段: 如果你沒有藝術細胞,偷懶的方法就是到這上面去找,比如登錄框界面等。側邊欄選用:http://www.designerslib....
摘要:側邊欄選用提到的。將改成來訪問的形式組織代碼出現循環的問題往往意味著代碼的布局有問題,可以合并或者分離競爭資源。分離的話就是把需要的資源提取到一個第三方文件去。總之就是將循環變成單向。對于周期性任務缺一不可。其他任務可僅運行。 1、bootstrap代碼片段: 如果你沒有藝術細胞,偷懶的方法就是到這上面去找,比如登錄框界面等。側邊欄選用:http://www.designerslib....
閱讀 917·2021-10-27 14:14
閱讀 1741·2021-10-11 10:59
閱讀 1315·2019-08-30 13:13
閱讀 3152·2019-08-29 15:17
閱讀 2750·2019-08-29 13:48
閱讀 488·2019-08-26 13:36
閱讀 2082·2019-08-26 13:25
閱讀 857·2019-08-26 12:24