<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
之前聊了很多flask的知識點,那麼完成一個flask專案之後,該這麼讓大家使用呢,直接放到本地,還是需要放到伺服器上,放到伺服器上又這麼操作的呢,那麼我們今天來聊聊flask專案部署。
首先在這裡需要了解部署的目的,是讓所有人或者指定的人可以存取到這個專案,並且可以更高效的提供服務給使用者,這裡就有些需要思考的關鍵點了:
然後基於這些點對比開發過程當中Flask自帶的輕量級伺服器很容易就發現了一些我們需要注意的點:
基本的部署思路是採用nginx作為和前端進行互動的伺服器,因為,Nginx (engine x) 是一個高效能的HTTP和反向代理web伺服器,同時也提供了IMAP/POP3/SMTP服務。nginx除了單點具備高效能的特點之外,也可以很方便的進行叢集設定,比如:結合keepalive實現高可用,或者基於nginx和反向代價服務叢集都是很方便的。
Gunicorn 伺服器作為 wsgi app 的容器,能夠與各種 Web 框架相容(flask,django 等),得益於 gevent 等技術,使用 Gunicorn 能夠在基本不改變 wsgi app 程式碼的前提下,大幅度提高 wsgi app 的效能。
所以基於這樣的策略,可以讓nginx指向gunicorn,gunicorn指向flask來做高效能部署,當然也可以直接使用gunicorn+flask部署,但是不建議nginx+flask部署,畢竟flask本身的效能是一個很大的瓶頸。
假如專案是main.py
from flask import Flask app = Flask(__name__) @app.route("/") def index(): return "Hello Flask" # 如果用gunicorn的話,那麼必須這麼寫不然的話,會提示找不到 if __name__ == '__main__': app.run()
安裝gunicorn
pip3 install gunicorn #安裝gunicorn ln -s /usr/local/python3/bin/gunicorn /usr/bin/gunicorn #設定環境變數
使用命令啟動專案
gunicorn -w 4 -b 0.0.0.0:8080 main:app #main檔案下的app變數
-w 4 使用4個worker程序執行服務
-b 0.0.0.0:8080 繫結當前伺服器所有ip的8080埠
使用設定
config.py
workers = 5 # 定義同時開啟的處理請求的程序數量,根據網站流量適當調整 worker_class = "gevent" # 採用gevent庫,支援非同步處理請求,提高吞吐量 bind = "127.0.0.1:8000" # 這裡8080可以隨便調整
常用設定
引數 | 描述 |
---|---|
debug | 是否開啟debug模式,部署選false |
bind | 存取地址 |
workers | 工作程序數 |
threads | 工作執行緒數 |
timeout | 超時時間 |
loglevel | 輸出紀錄檔級別 |
pidfile | 執行紀錄檔路徑 |
accesslog | 存取紀錄檔路徑 |
errorlog | 錯誤紀錄檔路徑 |
載入組態檔啟動專案
gunicorn -c config.py main:app
nginx安裝這裡就不詳細解釋了,直接聊設定吧(預設組態檔位置:/usr/local/nginx/conf/nginx.conf
upstream flask{ server 127.0.0.1:8000; } #這裡可以新增多個地址,也就是可以指向多個gunicorn伺服器, server { # 監聽80埠 listen 80; # 本機 server_name localhost; # 預設請求的url location / { #請求轉發到gunicorn伺服器 proxy_pass http://flask; #設定請求頭,並將頭資訊傳遞給伺服器端 proxy_set_header Host $host; } }
關於部署先聊這麼多,以上就是Nginx Gunicorn flask專案部署思路分析詳解的詳細內容,更多關於Nginx Gunicorn flask部署的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45