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

Windows Server環(huán)境下使用Nginx部署Flask應(yīng)用的全過程

 更新時間:2025年04月24日 09:28:59   作者:老胖閑聊  
Flask是一個輕量級的Python Web框架,它允許開發(fā)者快速搭建Web應(yīng)用或服務(wù),Nginx是一款高性能的HTTP和反向代理服務(wù)器,用于部署靜態(tài)文件服務(wù)、負載均衡以及作為HTTP緩存等,本文給大家介紹了Windows Server環(huán)境下使用Nginx部署Flask應(yīng)用的全過程,需要的朋友可以參考下

1. 環(huán)境準備

  1. 操作系統(tǒng): Windows Server 2016/2019/2022
  2. Python: 安裝最新穩(wěn)定版(如 Python 3.10+),確保勾選 Add Python to PATH。
  3. Nginx for Windows: 從 官網(wǎng) 下載 Windows 版本(如 nginx/Windows-1.25.3)。
  4. 依賴工具: Git(可選,用于代碼拉?。?、文本編輯器(如 VS Code)。

2. 創(chuàng)建 Flask 應(yīng)用

2.1 項目結(jié)構(gòu)

C:\flask-app\
   ├── app.py          # Flask 主程序
   ├── requirements.txt
   ├── static\         # 靜態(tài)文件
   └── venv\           # Python 虛擬環(huán)境

2.2 示例 app.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Hello, World! Flask on Windows Server with Nginx!"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

2.3 安裝依賴

# 創(chuàng)建虛擬環(huán)境
python -m venv venv
venv\Scripts\activate

# 安裝 Flask 和 Waitress(生產(chǎn)級 WSGI 服務(wù)器)
pip install flask waitress

3. 使用 Waitress 啟動 Flask

3.1 啟動命令

waitress-serve --port=5000 --threads=4 app:app
  • 參數(shù)說明:
    • --port: 監(jiān)聽端口
    • --threads: 線程數(shù)(根據(jù) CPU 核心調(diào)整)

3.2 創(chuàng)建啟動腳本 start_server.bat

@echo off
call venv\Scripts\activate
waitress-serve --port=5000 --threads=4 app:app

4. 配置 Nginx 反向代理

4.1 修改 Nginx 配置文件 nginx.conf

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    # 反向代理配置
    upstream flask_app {
        server 127.0.0.1:5000;  # Waitress 監(jiān)聽地址
    }

    server {
        listen       80;
        server_name  your_domain.com;  # 替換為域名或服務(wù)器 IP

        # 靜態(tài)文件處理(由 Nginx 直接代理)
        location /static {
            alias C:/flask-app/static;  # 替換為實際路徑
            expires 30d;
        }

        # 動態(tài)請求代理到 Flask
        location / {
            proxy_pass http://flask_app;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
}

4.2 啟動 Nginx

# 檢查配置語法
nginx -t

# 啟動 Nginx
start nginx

# 重啟(修改配置后)
nginx -s reload

5. 配置 Windows 服務(wù)(開機自啟)

5.1 使用 NSSM 工具(推薦)

  • 下載 nssm.exe
  • 注冊 Nginx 服務(wù):
nssm install Nginx "C:\nginx\nginx.exe"  # 替換為 Nginx 實際路徑
nssm start Nginx
  • 注冊 Waitress 服務(wù):
nssm install FlaskApp "C:\flask-app\venv\Scripts\python.exe" "C:\flask-app\venv\Scripts\waitress-serve.exe" --port=5000 app:app
nssm start FlaskApp

6. 常見問題與解決方案

6.1 端口沖突

  • 錯誤bind() to 0.0.0.0:5000 failed: 僅允許使用一個套接字地址
  • 解決: 檢查是否有其他程序占用端口,使用 netstat -ano | findstr :5000 并終止進程。

6.2 靜態(tài)文件 404

  • 錯誤: 瀏覽器無法加載 /static/style.css
  • 解決: 確保 Nginx 配置中的 alias 路徑使用正斜杠(C:/flask-app/static),且目錄存在。

6.3 Nginx 502 Bad Gateway

  • 原因: Nginx 無法連接后端 Flask 服務(wù)。
  • 排查:
    1. 檢查 Waitress 是否運行 (tasklist | findstr waitress)。
    2. 檢查防火墻是否允許端口 5000。

7. 擴展知識

7.1 啟用 HTTPS

  1. 使用 Let’s Encrypt 獲取免費證書(需域名)。
  2. 修改 Nginx 配置:
server {
    listen 443 ssl;
    ssl_certificate     C:/ssl/your_domain.crt;
    ssl_certificate_key C:/ssl/your_domain.key;
    # ... 其他配置
}

7.2 負載均衡

upstream flask_app {
    server 127.0.0.1:5000;
    server 127.0.0.1:5001;  # 啟動第二個實例
    least_conn;  # 使用最少連接算法
}

8. 注意事項

  1. 生產(chǎn)環(huán)境禁用調(diào)試模式: 確保 Flask 的 app.run(debug=False)。
  2. 日志管理: 配置 Nginx 和 Flask 的日志路徑,定期歸檔。
  3. 備份配置: 修改關(guān)鍵文件前備份(如 nginx.conf)。

通過以上步驟, Flask 應(yīng)用將在 Windows Server 上以高可靠性的方式運行,并通過 Nginx 實現(xiàn)高效反向代理和靜態(tài)資源加速。

以上就是Windows Server環(huán)境下使用Nginx部署Flask應(yīng)用的全過程的詳細內(nèi)容,更多關(guān)于Nginx部署Flask應(yīng)用的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • nginx 目錄密碼保護的設(shè)置方法

    nginx 目錄密碼保護的設(shè)置方法

    比如要對 網(wǎng)站目錄下的 test 文件夾 進行加密認證
    2010-12-12
  • Nginx服務(wù)器屏蔽與禁止屏蔽網(wǎng)絡(luò)爬蟲的方法

    Nginx服務(wù)器屏蔽與禁止屏蔽網(wǎng)絡(luò)爬蟲的方法

    今天小編就為大家分享一篇關(guān)于Nginx服務(wù)器屏蔽與禁止屏蔽網(wǎng)絡(luò)爬蟲的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • nginx如何配置部署一個域名,多個端口

    nginx如何配置部署一個域名,多個端口

    文章主要講述了在Windows下使用Nginx部署服務(wù)器的過程,包括配置Nginx、部署前端和后端項目、設(shè)置反向代理以及部署多個不同端口的項目
    2026-03-03
  • Nginx重定向后請求參數(shù)丟失的原因分析及解決方案

    Nginx重定向后請求參數(shù)丟失的原因分析及解決方案

    在日常開發(fā)和運維中,我們經(jīng)常會遇到需要使用 Nginx 進行反向代理的場景,但在配置 proxy_pass 時,有時候可能會遇到請求參數(shù)丟失的問題,在這篇文章中,我們將會詳細探討這個問題并給出幾種解決方案,需要的朋友可以參考下
    2023-11-11
  • Nginx實現(xiàn)清除緩存內(nèi)容

    Nginx實現(xiàn)清除緩存內(nèi)容

    NGINX可以從緩存中刪除舊的和過期的緩存文件,本文主要介紹了Nginx實現(xiàn)清除緩存內(nèi)容,具有一定的參考價值,感興趣的可以了解一下
    2024-08-08
  • 詳解nginx 配置文件解讀

    詳解nginx 配置文件解讀

    這篇文章主要介紹了詳解nginx 配置文件解讀,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • nginx的zabbix 5.0安裝部署的方法步驟

    nginx的zabbix 5.0安裝部署的方法步驟

    之前大家可能經(jīng)常會基于apache去部署zabbix,但是這樣會偶爾遇到一些問題,今天小編就帶大家操作一下基于nginx的zabbix5.0的部署。感興趣的可以了解一下
    2021-07-07
  • nginx try_files指令的實現(xiàn)示例

    nginx try_files指令的實現(xiàn)示例

    try_files用于指定文件的查找規(guī)則,可以配置多個規(guī)則,會按順序執(zhí)行查找規(guī)則,本文主要介紹了nginx try_files指令的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • Nginx如何進行流量按比例轉(zhuǎn)發(fā)

    Nginx如何進行流量按比例轉(zhuǎn)發(fā)

    Nginx 可以借助split_clients指令或通過 weight 參數(shù)以及 Lua 腳本實現(xiàn)流量按比例轉(zhuǎn)發(fā),下面小編就為大家介紹一下兩種方式具體的操作步驟吧
    2025-03-03
  • keepalived結(jié)合nginx實現(xiàn)nginx高可用的方法

    keepalived結(jié)合nginx實現(xiàn)nginx高可用的方法

    這篇文章主要介紹了keepalived結(jié)合nginx實現(xiàn)nginx高可用的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03

最新評論

双城市| 巴塘县| 黄冈市| 中宁县| 平武县| 泽库县| 岐山县| 云浮市| 双流县| 鱼台县| 法库县| 富顺县| 杭州市| 河北区| 繁峙县| 通山县| 梧州市| 崇左市| 乌拉特前旗| 惠州市| 阜新| 什邡市| 揭东县| 垫江县| 莎车县| 布拖县| 西林县| 海口市| 霍林郭勒市| 青田县| 桂林市| 宁德市| 保定市| 镇赉县| 宜良县| 中牟县| 水富县| 行唐县| 长汀县| 将乐县| 新竹市|