av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

Nginx Gunicorn flask項目部署思路分析詳解

瀏覽:244日期:2023-03-13 15:37:53
目錄
  • 部署目的
  • 部署思路
  • gunicorn啟動flask
  • nginx指向gunicorn

部署目的

之前聊了很多flask的知識點,那么完成一個flask項目之后,該這么讓大家使用呢,直接放到本地,還是需要放到服務器上,放到服務器上又這么操作的呢,那么我們今天來聊聊flask項目部署。

首先在這里需要了解部署的目的,是讓所有人或者指定的人可以訪問到這個項目,并且可以更高效的提供服務給用戶,這里就有些需要思考的關鍵點了:

  • 1、需要7*24不間斷的提供服務,家用的筆記本電腦或者臺式機是不夠的。
  • 2、需要提供給指定的人或者所有人看,就需要將項目放到大家可以訪問到的服務器。
  • 3、任何用戶請求服務器都希望得到快速高效的服務,所以服務器的效率是一個很關鍵的點。
  • 4、還需要注意網站的安全,為用戶提供服務的同時需要保證用戶和網站的數據都是安全的。

然后基于這些點對比開發過程當中Flask自帶的輕量級服務器很容易就發現了一些我們需要注意的點:

  • 1、開發一般是基于windows的個人電腦,這個環境開發和簡單的單元測試是沒有問題的,但是如果要進行項目的運行是不夠的,所以最好使用linux服務器(當然windows也有服務器版本)。
  • 2、Flask服務器默認監聽127.0.0.1:5000,這個地址是本機地址,外網訪問不到,需要修改,端口默認是5000,http默認是80也是可以修改的項。
  • 3、flask自帶的輕量級web服務器默認是單線程的,最大并發支持200,這樣的并發支持顯然無法提供更好的服務,所以可以通過nginx或者其他web服務器來提高服務器的性能。
  • 4、flask開發的時候為了方便會開啟debug調試模式,調試模式下,如果發生服務端錯誤的時候會把發生錯誤的代碼和觸發流程都展示出來,這樣很方便調試和排錯,但是也容易導致代碼被用戶看到,引發安全問題,所以需要關閉調試模式。

部署思路

基本的部署思路是采用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 Flaskapp = Flask(__name__)@app.route("/")def index():    return "Hello Flask"# 如果用gunicorn的話,那么必須這么寫不然的話,會提示找不到if __name__ == "__main__":    app.run()

gunicorn啟動flask

安裝gunicorn

pip3 install gunicorn #安裝gunicornln -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模式,部署選falsebind訪問地址workers工作進程數threads工作線程數timeout超時時間loglevel輸出日志級別pidfile運行日志路徑accesslog訪問日志路徑errorlog錯誤日志路徑

加載配置文件啟動項目

gunicorn -c config.py main:app

nginx指向gunicorn

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部署的資料請關注其它相關文章!

標簽: Nginx
主站蜘蛛池模板: 亚洲精品社区 | 色偷偷噜噜噜亚洲男人 | 咪咪色影院 | 国产精品欧美日韩 | 免费精品视频 | 日韩福利在线观看 | 色77777 | 国产成人免费观看 | 国产成人在线免费视频 | 成人a视频 | 韩国三级中文字幕hd久久精品 | 国产免费一区二区三区免费视频 | 91狠狠综合 | 亚洲精品一区中文字幕乱码 | 免费av网站在线观看 | 国产成人区| 日韩一级片在线观看 | 久草福利视频 | 日韩免费一级片 | 黄色免费毛片 | 国产视频在线观看视频 | 夜色在线影院 | 日韩三级一区二区 | 黄色成人毛片 | 日韩专区在线观看 | 欧美午夜精品 | 一级黄色片免费 | 亚洲精品免费在线观看 | 成年人在线观看 | 日本激情在线 | 色中色综合| eeuss一区二区三区 | 综合色av | 欧美精品在线观看视频 | 69精品视频 | 色啪视频 | 日韩欧美不卡 | 一区二区三区在线看 | jlzzzjlzzz国产免费观看 | 欧美综合色 | 色婷婷久久久 |