最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2022年12月07日 09:11:39   作者:老邊  
這篇文章主要為大家介紹了Nginx?Gunicorn?flask項目部署思路分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

部署目的

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

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

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

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

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

部署思路

基本的部署思路是采用nginx作為和前端進行交互的服務器,因為,Nginx (engine x) 是一個高性能的HTTP和反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務。nginx除了單點具備高性能的特點之外,也可以很方便的進行集群配置,比如:結(jié)合keepalive實現(xiàn)高可用,或者基于nginx和反向代價服務集群都是很方便的。

Gunicorn 服務器作為 wsgi app 的容器,能夠與各種 Web 框架兼容(flask,django 等),得益于 gevent 等技術(shù),使用 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啟動flask

安裝gunicorn

pip3 install gunicorn #安裝gunicorn
ln -s /usr/local/python3/bin/gunicorn /usr/bin/gunicorn #配置環(huán)境變量

使用命令啟動項目

gunicorn -w 4 -b 0.0.0.0:8080 main:app #main文件下的app變量

-w 4 使用4個worker進程執(zhí)行服務

-b 0.0.0.0:8080 綁定當前服務器所有ip的8080端口

使用配置

config.py

workers = 5        # 定義同時開啟的處理請求的進程數(shù)量,根據(jù)網(wǎng)站流量適當調(diào)整
worker_class = "gevent"  # 采用gevent庫,支持異步處理請求,提高吞吐量
bind = "127.0.0.1:8000"   # 這里8080可以隨便調(diào)整

常用配置

參數(shù)描述
debug是否開啟debug模式,部署選false
bind訪問地址
workers工作進程數(shù)
threads工作線程數(shù)
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 {
    # 監(jiān)聽80端口
    listen 80;
    # 本機
    server_name localhost; 
    # 默認請求的url
    location / {
        #請求轉(zhuǎn)發(fā)到gunicorn服務器
        proxy_pass http://flask; 
        #設置請求頭,并將頭信息傳遞給服務器端 
        proxy_set_header Host $host; 
    }
}

關(guān)于部署先聊這么多,以上就是Nginx Gunicorn flask項目部署思路分析詳解的詳細內(nèi)容,更多關(guān)于Nginx Gunicorn flask部署的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • win2003下nginx 0.8.38 安裝配置備忘

    win2003下nginx 0.8.38 安裝配置備忘

    經(jīng)不住蠱惑,決定在 Windows Server 2003 下安裝試用一下,并與 PHP 進行集成。
    2010-12-12
  • 通過Nginx+Tomcat+Redis實現(xiàn)持久會話

    通過Nginx+Tomcat+Redis實現(xiàn)持久會話

    這篇文章主要介紹了通過Nginx+Tomcat+Redis實現(xiàn)持久會話的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-11-11
  • 詳解Nginx輪詢算法底層實現(xiàn)的方法

    詳解Nginx輪詢算法底層實現(xiàn)的方法

    這篇文章主要介紹了詳解Nginx輪詢算法底層實現(xiàn)的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • 一文了解nginx HTTP安全響應問題

    一文了解nginx HTTP安全響應問題

    一些網(wǎng)站系統(tǒng)會經(jīng)常遭到各類XSS攻擊、點劫持等,從而造成重要信息的泄露以及服務器安全問題,本文就來介紹一下,感興趣的可以了解一下
    2023-11-11
  • Nginx域名轉(zhuǎn)發(fā)https訪問的實現(xiàn)

    Nginx域名轉(zhuǎn)發(fā)https訪問的實現(xiàn)

    這篇文章主要介紹了Nginx域名轉(zhuǎn)發(fā)https訪問的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • 當 Nginx 出現(xiàn) 504 錯誤的完美解決方法

    當 Nginx 出現(xiàn) 504 錯誤的完美解決方法

    Nginx是一款流行的Web服務器和反向代理服務器,但有時會遇到504網(wǎng)關(guān)超時錯誤,這種錯誤通常是由后端服務器響應緩慢、Nginx配置不當或網(wǎng)絡問題導致的,下面給大家分享Nginx 出現(xiàn) 504 錯誤的完美解決方法,一起看看吧
    2024-09-09
  • 阿里云國際版使用Nginx作為HTTPS轉(zhuǎn)發(fā)代理服務器的處理方法

    阿里云國際版使用Nginx作為HTTPS轉(zhuǎn)發(fā)代理服務器的處理方法

    本文介紹了使用NGINX作為HTTPS流量轉(zhuǎn)發(fā)代理的兩種方法。它總結(jié)了NGINX使用HTTP?CONNECT隧道和NGINX流充當HTTPS轉(zhuǎn)發(fā)代理的解決方案的原則,環(huán)境構(gòu)建要求,應用場景和關(guān)鍵問題
    2022-05-05
  • 詳解通過Nginx部署Django(基于ubuntu)

    詳解通過Nginx部署Django(基于ubuntu)

    這篇文章主要介紹了詳解通過Nginx部署Django(基于ubuntu),Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比較常見的一種方式,有興趣的可以了解一下。
    2017-01-01
  • Nginx的mirror指令示例配置

    Nginx的mirror指令示例配置

    這篇文章主要介紹了Nginx的mirror指令能干啥?mirror 指令提供的核心功能就是流量復制, 至于流量復制要用來干嘛,這個就各取所需了,需要的朋友可以參考下
    2022-05-05
  • Nginx虛擬主機的配置步驟過程全解

    Nginx虛擬主機的配置步驟過程全解

    這篇文章主要為大家介紹了Nginx虛擬主機的配置步驟過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-03-03

最新評論

富平县| 沐川县| 筠连县| 合江县| 盐边县| 伊川县| 唐海县| 郯城县| 乐平市| 广水市| 都江堰市| 农安县| 八宿县| 绥芬河市| 惠水县| 宁乡县| 林芝县| 淮北市| 亚东县| 宁陵县| 光山县| 靖边县| 萝北县| 离岛区| 岑巩县| 靖远县| 泰顺县| 新丰县| 和林格尔县| 宜丰县| 亳州市| 常熟市| 平泉县| 伊通| 无为县| 大连市| 邓州市| 南昌县| 乐亭县| 分宜县| 吉林市|