当前位置: 首页 > web >正文

nginx + uwsgi + systemd 部署 flask

Flask 常用部署方式

  • uWSGI + Nginx(最常用)

  • Gunicorn + Nginx

  • gevent.pywsgi + Nginx

使用gevent.pywsgi的完整示例:python
from gevent import pywsgi
from your_app import appserver = pywsgi.WSGIServer(('0.0.0.0', 5000), app)
print("Server running on port 5000...")
server.serve_forever()
导出第三方模块
pip freeze > requirements.txt
创建python虚拟环境
# 安装虚拟环境的第三方包 virtualenv
pip3 install virtualenv# 创建虚拟环境(虚拟环境一般放在项目根目录下)
virtualenv venv# 激活虚拟环境
source venv/bin/activate# 退出虚拟环境
deactivate

下载三方模块

在虚拟环境中导入requirements中的第三方模块

pip install -r requirements.txt

导入数据库

新建 文件 wsgi.py

# wsgi.py
from app import app  # 从应用模块导入 app 实例if __name__ == "__main__":app.run()

 创建uwsgi.ini

[uwsgi]
module = wsgi
callable = app
master = true
processes = 2
threads = 100
plugin = python3
socket = 0.0.0.0:8002# 或者使用Unix socket方式(二选一)
; socket = /myflaskapp/uwsgi.sock
; chmod-socket = 660
; vacuum = true# Python虚拟环境virtualenv = /home/ubuntu/zhiliao_oa/venv# 日志文件
logto = /home/ubuntu/zhiliao_oa/logs/error.log
buffer-size = 65535
die-on-term = true

创建 /etc/systemd/system/flaskoa.service

[Unit]
Description=uWSGI instance to serve your Flask app
After=network.target[Service]
User=www-data
Group=www-data
WorkingDirectory=/home/ubuntu/zhiliao_oa
Environment="PATH=/home/ubuntu/zhiliao_oat/venv/bin"
ExecStart=/usr/bin/uwsgi --ini =/home/ubuntu/zhiliao_oa/wsgi.ini[Install]
WantedBy=multi-user.target

 配置nginx

# nginx配置server {listen   80;server_name flask.larance.xyz;location / {uwsgi_pass   127.0.0.1:8002;  # uwsgi运行的端口include uwsgi_params;}location /static{alias  /home/ubuntu/zhiliao_oa/static;  # 你收集的静态文件的位置}
}

http://www.xdnf.cn/news/16039.html

相关文章:

  • 在Windows Server 2012 R2中安装与配置IIS服务并部署mssql靶机教程
  • springboot实战篇1
  • 基于 HAProxy 搭建 EMQ X 集群
  • C++的“链”珠妙笔:list的编程艺术
  • 解决vscode中vue格式化后缩进太小的问题,并去除分号 - 设置Vetur tabSize从2到4,设置prettier取消分号semi
  • 计算机发展史:人工智能时代的智能变革与无限可能
  • 基于WebSocket的安卓眼镜视频流GPU硬解码与OpenCV目标追踪系统实现
  • 【PTA数据结构 | C语言版】哥尼斯堡的“七桥问题”
  • C# Lambdab表达式 Var 类
  • Elupload实现多个文件上传与已上传列表中做对比,若重复则只保留已上传列表中的数据,同时告诉用户,有哪些文件重复上传了
  • 搭建种草商城框架指南
  • 飞算科技:以原创技术为翼,赋能产业数字化转型
  • Linux第三课:需要自己安装的远程登录工具PuTTY的介绍
  • 【PTA数据结构 | C语言版】求单源最短路的Dijkstra算法
  • Taro 本地存储 API 详解与实用指南
  • G7打卡——Semi-Supervised GAN
  • EMBMS1820芯祥科技18单元电池监控器芯片数据手册
  • 华控的科技布局——全球化战略与合作生态
  • 力扣(LeetCode)第 161 场双周赛
  • macbookpro m1 max本儿上速搭一个elasticsearch+kibana环境
  • 基于deepseek的LORA微调
  • 【设计模式C#】简单工厂模式(用于简化获取对象实例化的复杂性)
  • 个人中心产品设计指南:从信息展示到用户体验的细节把控
  • mongodb源代码分析createCollection命令由create.idl变成create_gen.cpp过程
  • 在.NET Core API 微服务中使用 gRPC:从通信模式到场景选型
  • uniapp使用uni-ui怎么修改默认的css样式比如多选框及样式覆盖小程序/安卓/ios兼容问题
  • taro微信小程序的tsconfig.json文件说明
  • Hyperledger Fabric V2.5 生产环境部署及安装Java智能合约
  • 从env到mm_struct:环境变量与虚拟内存的底层实现
  • 来伊份养馋记社区零售 4.0 上海首店落沪:重构 “家门口” 的生活服务生态