python web 部署方式為:nginx + gunicorn + supervisor + flask
一、準備工作,先來安裝pip
詳細教程如:
1、首先檢查linux有沒有安裝python-pip包,直接執行 yum install python-pip
※顯示No package python-pip available. 則沒有,繼續如下操作
2、沒有python-pip包就執行命令 yum -y install epel-release
3、執行成功之后,再次執行yum install python-pip
4,、對安裝好的pip進行升級 pip install --upgrade pip
至此,pip工具就安裝好了。
二、創建一個項目和 python 虛擬環境
使用python的virtualenv創建虛擬環境 。用來在一個系統中創建不同的 python 隔離環境。相互之間還不會影響,而且使用相當簡單。
mkdir myflaskcd myflaskvirtualenv venv
創建了 venv 環境之后,激活就可以了
source venv/bin/activate
三、安裝 python web 框架 ― flask
flask 是一個 python web 輕型框架,簡潔高效。flask 依賴兩個庫 werkzeug 和 jinjia2??刹捎?pip 方式安裝:
pip install flask
測試我們的 flask 安裝是否成功,并使用 flask 寫一個簡單的 web 服務。
vim run.py
from flask import Flaskapp = Flask(__name__)@app.route('/')def index(): return 'hello world!'if __name__ == '__main__': app.run()
啟動 flask
python run.py
此時,用瀏覽器訪問 http://127.0.0.1:5000 就能看到網頁顯示 hello world!
三、使用 gunicorn 部署 python web
現在我們使用 flask 自帶的服務器,完成了 web 服務的啟動。生產環境下,flask 自帶的 服務器,無法滿足性能要求。我們這里采用 gunicorn 做 wsgi容器,用來部署 python,用pip直接安裝。
pip install gunicorn
pip 是python 用來管理包的一個重要工具。每次安裝新庫后寫入一個 requirement 文件里面,既能知道自己安裝了什么庫,也方便別人部署時,安裝相應的庫。
pip freeze > requirements.txt
以后每次 pip 安裝了新的庫的時候,都需freeze 一次。完整保存好requirement文本,重新安裝庫則只需要執行如下操作:
pip install -r requirements.txt
當我們安裝好 gunicorn 之后,需要用 gunicorn 啟動 flask,注意 flask 里面的name里面的代碼啟動了 app.run(),這個含義是用 flask 自帶的服務器啟動 app。這里我們使用了 gunicorn,run.py 就等同于一個庫文件,被 gunicorn 調用。
gunicorn -w4 -b0.0.0.0:5000 run:app #-w worker數量 -b 訪問地址
此時,我們可以用 5000 的端口進行訪問。
想要結束 gunicorn 只需執行 pkill gunicorn,有時候還需要用 ps 找到 pid 進程號才能 kill。
四、使用nginx
nginx,一個高性能的web服務器。通常用來在前端做反向代理服務器。代理服務,簡而言之,一個請求經過代理服務器從局域網發出,然后到達互聯網上服務器,這個過程的代理為正向代理。如果一個請求,從互聯網過來,先進入代理服務器,再由代理服務器轉發給局域網的目標服務器,這個時候,代理服務器為反向代理(相對正向而言)。
1. gcc 安裝
安裝 nginx 需要先將官網下載的源碼進行編譯,編譯依賴 gcc 環境,如果沒有 gcc 環境,則需要安裝:
新聞熱點
疑難解答