使用Trae AI开发的Python Flask项目在Windows 11上的Nginx服务里部署实操详细记录
一、系统环境准备
- 系统更新:确保Windows 11操作系统已安装所有最新的安全更新和功能更新。
操作路径:打开”设置”(win + i) → 选择”Windows更新”选项卡 → 点击”检查更新”按钮,安装所有可用更新并重启系统。 - 开发者模式配置(可选但推荐):
操作路径:打开”设置”(win + i) → 选择”隐私和安全性” → 点击”开发者选项” → 启用”开发者模式”开关,并确认相关安全提示。
二、核心软件安装与配置
- Python环境安装与验证
a. 访问Python官方网站(https://www.python.org/downloads/),下载最新稳定版Python 3.x解释器(推荐版本3.11及以上)
b. 运行安装程序,重要:勾选”Add Python to PATH”选项,然后点击”Install Now”完成标准安装
c. 验证安装结果:- 打开命令提示符(CMD)或PowerShell
- 执行命令:python –version 验证Python版本
- 执行命令:pip –version 验证pip包管理器版本
- 若命令无法识别,需手动检查系统环境变量PATH中是否已添加Python安装路径(勾选”Add Python to PATH”选项)
- NSSM(Non-Sucking Service Manager)安装配置
a. 下载最新版NSSM工具(https://nssm.cc/download)
b. 将下载的压缩包解压至指定目录:c:\nssm
c. 将c:\nssm路径添加到系统环境变量PATH中,以便在任意命令行窗口直接调用nssm命令 - SQL Server ODBC驱动安装说明(可选组件)
经实际测试,Windows 11操作系统可能已预装SQL Server ODBC驱动,可暂不单独安装。如后续项目运行中出现数据库连接问题,可从Microsoft官方网站下载并安装最新版SQL Server ODBC驱动
三、项目部署(例如项目名称:pcPlan)
- 创建项目目录:在本地计算机的C盘根目录下创建名为”pcPlan”的文件夹,路径为C:\pcPlan,确保该目录具有读写权限。
- 复制项目文件:将项目所有相关文件完整复制到C:\pcPlan目录中,必须包含以下关键文件,确保文件结构完整且无损坏:
- webPlan.py(Flask应用主程序,负责Web服务启动与路由管理)
- pcPlan.py(Excel处理逻辑模块,包含数据导入导出和数据处理等核心功能)
- mssql_connector.py(数据库连接模块,负责与MSSQL数据库的交互)
- field_map.py(字段映射配置文件,定义数据字段的映射关系)
- templates\upload.html(Web界面模板,用户上传文件的前端页面)
- templates\Logo.png(Web界面Logo图片)
- templates\favicon.ico(Web界面浏览器网址图标)
- requirements.txt(项目依赖列表,包含所有必要的Python包及其版本信息)
3.1 创建虚拟环境:在C:\pcPlan目录下打开命令提示符,执行以下命令创建独立的Python虚拟环境(每个项目仅需执行一次):
python -m venv venv
3.2 激活虚拟环境:执行以下命令激活创建的虚拟环境:
venv\Scripts\activate
验证:激活成功后,命令提示符前应显示”(venv)”标识
3.3 安装项目依赖:在激活虚拟环境的状态下,执行以下命令安装项目所需依赖:
pip install -r requirements.txt
补充安装:若requirements.txt中存在缺失依赖,可执行以下命令补充安装:
pip install flask pandas openpyxl pyodbc #本项目用到的依赖
验证:安装完成后,可通过”pip list”命令检查已安装的包是否完整
- 安装WSGI服务器(可选步骤):如需在生产环境部署,建议安装Waitress作为WSGI服务器,执行以下命令:
pip install waitress
说明:此步骤非开发环境必需,仅推荐在生产环境中使用以提高服务稳定性和性能
四、配置Web服务器(Nginx)
- 安装Nginx for Windows(https://nginx.org/):下载Nginx 1.25.3版本的压缩包(nginx-1.25.3.zip),将其解压至指定目录(如C:\WebSer\nginx),确保解压路径中不包含中文或特殊字符。
- 验证Nginx的配置文件(在CMD窗口下):
nginx -t -c conf\nginx.conf - 使用NSSM将Nginx安装为Windows服务:
a. 导航至nssm程序的win64目录下(CMD窗口)
b. 执行以下命令完成服务安装与管理:
nssm install Nginx “C:\WebSer\nginx\nginx.exe” # 将Nginx安装为系统服务
nssm edit Nginx # 打开图形界面配置Nginx服务参数(建议配置启动目录、依赖项等)
nssm start Nginx # 启动Nginx服务
nssm stop Nginx # 停止Nginx服务
nssm remove Nginx # 卸载Nginx服务(卸载前必须先停止服务)
c. 验证服务安装:通过Windows服务管理器确认”Nginx”服务已成功创建并可正常启动 - 配置Nginx反向代理:
a. 使用文本编辑器打开Nginx配置文件:C:\nginx\conf\nginx.conf
b. 举例:配置pcPlan反向代理的核心语法
location /pcPlan/templates/ {
proxy_pass http://127.0.0.1:5000/templates/;
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;
}
# /pcPlan/download/ Excel文件下载
location ~ ^/pcPlan/download/(..xlsx)$ { alias F:/AI/Trae/todoB/$1; add_header Content-Type application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; add_header Content-Disposition attachment; } # /pcPlan/ Excel文件处理 location ~ ^/pcPlan/(..xlsx)$ {
alias F:/AI/Trae/todoB/$1;
add_header Content-Type application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;
add_header Content-Disposition attachment;
}
location /pcPlan/ {
proxy_pass http://127.0.0.1:5000/; #末尾有斜杠,代理时会自动去掉/pcPlan/
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;
proxy_set_header X-Forwarded-Prefix /pcPlan;
}
d. 通过”nssm restart Nginx”命令重启服务使配置生效
e. 测试反向代理功能是否正常工作,确保请求能够正确转发并返回响应
五、Flask项目部署为Windows服务
- 使用NSSM工具将Flask应用注册为Windows服务
1.1 打开命令提示符(管理员模式),执行以下命令进入NSSM工具目录:
cd C:\tools\nssm\win64
1.2 运行NSSM安装命令创建服务:
nssm install pcPlan “F:\AI\Trae\todoB\venv\Scripts\python.exe” “F:\AI\Trae\todoB\webPlan.py”
1.3 在弹出的NSSM图形配置界面中,严格按以下参数配置:- Path(可执行文件路径):F:\AI\Trae\todoB\venv\Scripts\python.exe
- Startup directory(启动目录):F:\AI\Trae\todoB
- Arguments(启动参数):F:\AI\Trae\todoB\webPlan.py
1.4 完成配置后点击”Install service”按钮完成服务注册
- 服务属性修改与描述信息配置
2.1 执行以下命令打开服务编辑界面:
nssm edit pcPlan
2.2 在”Details”选项卡中,修改”Description”字段为包含中文的服务描述信息(例如:”PC排期追踪:5000″)
2.3 点击”OK”保存修改 - 服务验证与管理
3.1 启动服务:nssm start pcPlan
3.2 验证服务状态:nssm status pcPlan
3.3 如需停止服务:nssm stop pcPlan
3.4 如需卸载服务:nssm remove pcPlan confirm
注意事项:
- 确保路径中的大小写与实际文件系统保持一致
- 服务配置前需确认Python虚拟环境已正确激活且依赖包已安装
- 修改描述信息时确保中文显示正常,避免编码问题
- 操作完成后建议重启服务使配置生效
六、整个系统部署验证流程
- 服务状态验证:
- 打开Windows服务管理应用(services.msc)
- 定位并检查”PCPlan”服务状态,确认其显示为”正在运行”
- 定位并检查”Nginx”服务状态,确认其显示为”正在运行”
2. 应用访问验证:
- 打开Web浏览器(推荐使用Chrome、Edge或Firefox最新版本)
- 在地址栏分别输入下列地址并进行操作
http://localhost:5000 #Flask应用地址
http://127.0.0.1:5000 #Flask应用地址
http://127.0.0.1/pcPlan #反向代理地址
3. 日志验证:
- 打开Windows事件查看器
- 导航至Windows日志 > 应用程序日志
- 确认系统生成运行正常的Windows日志记录,具体表现为:无错误或警告级别日志,仅有信息级别启动成功日志。
