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

服务器部署--Flask项目

一、准备工作

假设你的服务器系统是 Linux(CentOS/Ubuntu均适用),公网IP是 111.229.204.102,Flask 监听端口为 7777


二、Flask 项目示例代码

  1. 新建项目目录,比如 /www/demo_app

sudo mkdir -p /www/demo_app
sudo chown -R $(whoami) /www/demo_app
cd /www/demo_app
  1. 新建两个 Python 文件:

  • mycode.py (普通 Python 模块)

# mycode.py
def add(a, b):return a + bdef greet(name):return f"Hello, {name}!"
  • app.py (Flask 服务启动文件)

from flask import Flask
from flask_cors import CORS
import mycodeapp = Flask(__name__)
CORS(app)  # 允许跨域访问@app.route('/')
def index():result = mycode.add(10, 20)greeting = mycode.greet("小明")return f"计算结果:10 + 20 = {result}<br>打招呼:{greeting}"if __name__ == '__main__':# 监听所有地址,端口7777app.run(host='0.0.0.0', port=7777)

三、安装 Python 和依赖

假设你的服务器没有 Python3 和 pip:

# 安装 Python3 和 pip (CentOS示例)
sudo yum install -y python3 python3-pip# 安装 Flask 和 flask-cors
pip3 install flask flask-cors

四、测试启动 Flask 服务

cd /www/demo_app
python3 app.py

启动后会看到:

 * Running on http://0.0.0.0:7777/ (Press CTRL+C to quit)

这时在本机服务器用浏览器或 curl 测试:

curl http://127.0.0.1:7777/

应该能看到返回的 HTML:

计算结果:10 + 20 = 30
打招呼:Hello, 小明!

五、配置服务器防火墙和云服务安全组

  1. 开放端口 7777

  • 如果你是阿里云、腾讯云等云服务器,登录云服务商控制台:

    • 找到你实例对应的安全组设置

    • 添加一条入站规则:TCP,端口7777,源地址 0.0.0.0/0(允许所有IP访问)

  1. 服务器本地防火墙放通端口

  • CentOS 7+ 使用 firewalld:

sudo firewall-cmd --zone=public --add-port=7777/tcp --permanent
sudo firewall-cmd --reload
  • Ubuntu 使用 ufw:

sudo ufw allow 7777/tcp
sudo ufw reload

六、浏览器访问测试

在任意电脑浏览器打开:

http://111.229.204.102:7777/

应看到网页显示:

计算结果:10 + 20 = 30
打招呼:Hello, 小明!

七、后台运行 Flask 服务(测试用)

你可以用 nohup 让程序在后台运行,不受终端关闭影响:

nohup python3 app.py > flask.log 2>&1 &

查看日志:

tail -f flask.log

八、配置 systemd 实现开机自启动

  1. 创建 systemd 服务文件(统一放在/etc/systemd/system/,比较好

用 root 权限编辑 /etc/systemd/system/flask_app.service

sudo vim /etc/systemd/system/flask_app.service

写入以下内容(根据实际路径和用户修改):

[Unit]
Description=Flask Demo App
After=network.target[Service]
User=ec2-user                   # 运行该服务的用户(你自己的用户)
WorkingDirectory=/www/demo_app  # Flask项目目录
ExecStart=/usr/bin/python3 /www/demo_app/app.py
Restart=always                  # 程序异常退出自动重启
RestartSec=5s[Install]
WantedBy=multi-user.target
  • User 要写你实际登录服务器的用户名(用 whoami 查看)

  • ExecStart 填写 python3 路径和项目中 app.py 的绝对路径

  1. 重新加载 systemd 配置:

sudo systemctl daemon-reload
  1. 启动服务并测试:

sudo systemctl start flask_app.service
sudo systemctl status flask_app.service

确认服务状态为 active (running)

  1. 设置开机自启:

sudo systemctl enable flask_app.service
  1. 停止服务:

sudo systemctl stop flask_app.service
  1. 查看日志:

journalctl -u flask_app.service -f

相关文章:

  • webpack继续学习
  • ROS1和ROS2的区别autoware.ai和autoware.universe的区别
  • 怎么通过 jvmti 去 hook java 层函数
  • ubuntu自定义服务自动启动
  • 详解Jenkins Pipeline 中git 命令的使用方法
  • 【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
  • C++String的学习
  • VS Code 打开ipynb(还不会)运行python
  • 【SpringCloud】Nacos配置中心
  • C++内存列传之RAII宇宙:智能指针
  • 【和春笋一起学C++】(十七)C++函数新特性——内联函数和引用变量
  • 在java 项目 springboot3.3 中 调用第三方接口(乙方),如何做到幂等操作(调用方为甲方,被调用方为乙方)? 以及啥是幂等操作?
  • 本地日记本,用于记录日常。
  • ④Pybullet之Informed RRT*算法介绍及示例
  • 四元数:从理论基础到实际应用的深度探索
  • .net jwt实现
  • 在Mathematica中实现Newton-Raphson迭代的收敛时间算法
  • 区块链架构深度解析:从 Genesis Block 到 Layer 2
  • Elasticsearch中的地理空间(Geo)数据类型介绍
  • 使用Virtual Serial Port Driver+com2tcp(tcp2com)进行两台电脑的串口通讯
  • 网站制作售后/注册域名费用一般多少钱
  • 长春网长春网络推广站排名/云巅seo
  • 自己做网站什么类型的比较好/百度关键词搜索排行
  • 国外疫情最新消息排行表/seo基础课程
  • 网站2019建设目标/最近营销热点
  • 交流平台网站架构怎么做/开网店如何运营和推广