CentOS部署python Flask项目

CentOS部署python Flask项目

将项目打包成tar.gz包并上传到公网linux服务器(centos)

shell 复制代码
将整个文件夹压缩为xxx.tar.gz  
tar -zcvf  xxx.tar.gz 文件夹名

挑选文件进行打包
tar -zcvf xxx.tar.gz file1 file2 file3

上传到linux服务器

shell 复制代码
scp xxx.tar.gz 用户名@服务器ip:上传到服务器的目录

举个栗子: 上传到~/
scp xxx.tar.gz root@ip:~/
表示上传到root用户的~目录

解压

shell 复制代码
创建目录
mkdir flask
tar -zxvf xxx.tar.gz -C ./flask

使用MiniConda管理

miniconda的下载安装

点击miniconda官网安装教程 windows macos linux

下面的安装命令来自官网

shell 复制代码
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh

初始化终端

shell 复制代码
~/miniconda3/bin/conda init bash
~/miniconda3/bin/conda init zsh

关闭终端,重启终端 会看到 终端前方多了个(Base), 这是conda默认的python环境

复制代码
(base) [root@iZ2zef4iumnunw6gqcbjxsZ ~]

输入下方命令查看版本

shell 复制代码
conda -V

会显示下方安装的版本号,表示安装成功

复制代码
conda 23.10.0

使用conda 创建虚拟环境,安装依赖

shell 复制代码
conda create -n 虚拟环境名 python=3.x

举个栗子,创建名为flask_test python版本为3.9.13的虚拟环境
conda create -n flask_test python=3.9.13

激活虚拟环境

shell 复制代码
conda activate flask_test

此时终端前方的Base会变为 (flask_test),后续使用conda install 或者pip install下载的依赖包都会存在于当前的虚拟环境, 与其他python环境,项目 隔离

安装依赖

shell 复制代码
conda中主要是一些AI, 科学计算等的库. 一些web库还是使用pip下载吧

pip install -r requirements.txt

(提一下conda的安装库命令 conda install requirements.txt)

开启远程访问 (以5000端口举例)

云服务器的话需要在官网安全组里面放行端口,这是云服务厂商设定的第一道防火墙

开放本linux的防火墙5000端口,第二道防火墙

shell 复制代码
# 查看已经开放端口
firewall-cmd --list-ports

#开启端口
firewall-cmd --zone=public --add-port=5000/tcp --permanent
# 重启防火墙
firewall-cmd --reload

firewall-cmd --list-ports # 查看是否已经开启

一般firewall 这个云服务器linux会自带, 如果没有这个命令的话需要安装,请执行以下

shell 复制代码
yum install firewalld

#启动firewalld
systemctl start firewalld 
# 设置开启自动启动
systemctl enable firewalld

由于浏览器同源策略,给后端接口设置跨域 示例如下

python 复制代码
from flask import Flask
# 导入CORS
from flask_cors import CORS


app = Flask(__name__)
# 为app设置跨域 设置跨域路径
CORS(app, resources=r'/*')


@app.route('/')
def index():
    return 'Hello World'

更详细复杂的跨域配置,请自行查阅相关文档

启动flask项目

shell 复制代码
#设置要执行的文件 假设为main.py
export FLASK_APP = main
# -h 0.0.0.0 表示监听所有ip 任何人都可以访问
flask run -h 0.0.0.0 -p 5000

但是上面启动的进程会在当前终端关闭时停止,必须将其设置为后台运行的进程

要使 Flask 应用在后台运行,可以使用 nohup(no hang up)命令来启动应用,并将其放入后台运行。同时,您可能还需要将输出重定向到文件,以便在后台运行时可以查看日志。下面是一个示例命令:

bash 复制代码
nohup flask run -h 0.0.0.0 -p 5000 > my_flask_app.log 2>&1 &

解释一下这个命令:

  • nohup:该命令用于忽略挂起信号,使命令在后台运行。
  • flask run -h 0.0.0.0 -p 5000:您的 Flask 应用程序的启动命令,使用 -h 0.0.0.0 表示监听所有可用网络接口,使用 -p 5000 指定端口号。
  • > my_flask_app.log:将标准输出重定向到名为 my_flask_app.log 的文件。
  • 2>&1:将标准错误(stderr)重定向到与标准输出相同的文件。
  • &:使整个命令在后台运行。

通过执行这个命令,您的 Flask 应用将在后台运行,并且标准输出和标准错误都会写入到指定的日志文件中。请注意,上述方法适用于大多数情况,但对于更复杂的生产环境,可能需要考虑使用进程管理工具(如 systemdsupervisord 等)来管理 Flask 应用。这样可以更好地监控和控制应用程序的行为。

相关推荐
❀͜͡傀儡师7 小时前
centos 7部署dns服务器
linux·服务器·centos·dns
好家伙VCC8 小时前
### WebRTC技术:实时通信的革新与实现####webRTC(Web Real-TimeComm
java·前端·python·webrtc
前端玖耀里9 小时前
如何使用python的boto库和SES发送电子邮件?
python
serve the people9 小时前
python环境搭建 (十二) pydantic和pydantic-settings类型验证与解析
java·网络·python
小天源9 小时前
Error 1053 Error 1067 服务“启动后立即停止” Java / Python 程序无法后台运行 windows nssm注册器下载与报错处理
开发语言·windows·python·nssm·error 1053·error 1067
喵手9 小时前
Python爬虫实战:HTTP缓存系统深度实战 — ETag、Last-Modified与requests-cache完全指南(附SQLite持久化存储)!
爬虫·python·爬虫实战·http缓存·etag·零基础python爬虫教学·requests-cache
喵手9 小时前
Python爬虫实战:容器化与定时调度实战 - Docker + Cron + 日志轮转 + 失败重试完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·容器化·零基础python爬虫教学·csv导出·定时调度
2601_9491465310 小时前
Python语音通知接口接入教程:开发者快速集成AI语音API的脚本实现
人工智能·python·语音识别
寻梦csdn10 小时前
pycharm+miniconda兼容问题
ide·python·pycharm·conda
Java面试题总结11 小时前
基于 Java 的 PDF 文本水印实现方案(iText7 示例)
java·python·pdf