2024-11-27CentOS部署Flask

CentOS部署Python的Flask框架

Flask框架只适合在本地进行运行,在云服务器上需要WSGI的HTTP服务器gunicorn进行运行


1-完整CentOS部署Flask脚本

1-完整脚本

以下是整理后的脚本,并添加了注释以解释每个步骤的作用:

#!/bin/bash

# 切换到指定目录
cd /root/enzo/product/python_project/

# 删除旧的 bigmodel_01_chat 目录,如果存在
rm -rf bigmodel_01_chat

# 从远程仓库克隆 bigmodel_01_chat 项目,并指定分支 master_webtab_4
git clone git@gitee.com:enzoism/bigmodel_01_chat.git -b master_webtab_4

# 进入克隆的项目目录
cd bigmodel_01_chat

# 安装项目所需的 Python 依赖包
pip install flask requests pymongo bson python-dotenv datetime jsonify gunicorn

# 使用 Gunicorn 启动 Flask 应用,绑定到所有网络接口的 5000 端口
gunicorn --bind 0.0.0.0:5000 app:app

2-脚本解释

  1. 切换目录 (cd):

    • cd /root/enzo/product/python_project/: 切换到指定的项目目录。
  2. 删除旧目录 (rm -rf):

    • rm -rf bigmodel_01_chat: 删除旧的 bigmodel_01_chat 目录,以便为新的克隆做好准备。
  3. 克隆项目 (git clone):

    • git clone git@gitee.com:enzoism/bigmodel_01_chat.git -b master_webtab_4: 从指定的 Git 仓库克隆 bigmodel_01_chat 项目,并切换到 master_webtab_4 分支。
  4. 进入项目目录 (cd):

    • cd bigmodel_01_chat: 进入克隆下来的项目目录。
  5. 安装依赖 (pip install):

    • pip install flask requests pymongo bson python-dotenv datetime jsonify gunicorn: 安装项目所需的 Python 依赖包。
      • flask: Web 框架。
      • requests: HTTP 请求库。
      • pymongobson: MongoDB 驱动。
      • python-dotenv: 用于加载环境变量。
      • datetime: 日期时间处理库。
      • jsonify: 用于将数据格式化为 JSON。
      • gunicorn: WSGI HTTP 服务器。
  6. 启动应用 (gunicorn):

    • gunicorn --bind 0.0.0.0:5000 app:app: 使用 Gunicorn 启动 Flask 应用,绑定到所有网络接口的 5000 端口。
      • --bind 0.0.0.0:5000: 绑定到所有网络接口的 5000 端口。
      • app:app: 指定要运行的 Flask 应用,其中第一个 app 是模块名,第二个 app 是 Flask 实例名。

这个脚本的主要作用是将项目从 Git 仓库克隆到本地,安装所需的依赖,并使用 Gunicorn 启动 Flask 应用。


2-单独CentOS部署Flask服务

在 CentOS 上部署一个基于 Python 的 Flask 服务,通常需要以下几个步骤:

1. 安装必要的依赖

首先,确保你的 CentOS 系统已经安装了 Python 和 pip。如果没有安装,可以通过以下命令安装:

sudo yum install -y python3 python3-pip

2. 创建 Flask 项目

在服务器上创建一个新的目录来存放你的 Flask 项目。

mkdir ~/myflaskapp
cd ~/myflaskapp

myflaskapp 目录下创建一个简单的 Flask 应用。创建一个名为 app.py 的文件,内容如下:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

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

3. 安装 Flask

安装 Flask 及其依赖项。确保你在项目目录中运行以下命令:

pip3 install Flask

4. 使用 Gunicorn 作为 WSGI 服务器

Flask 自带的服务器适合开发环境,但不适合生产环境。我们可以使用 Gunicorn 作为生产环境的 WSGI 服务器。

安装 Gunicorn:

pip3 install gunicorn

然后,使用 Gunicorn 运行 Flask 应用:

gunicorn --bind 0.0.0.0:5000 app:app

5. 设置 systemctl 服务

为了方便管理,可以将 Flask 服务设置为系统服务。

  1. 创建一个服务文件:
sudo vi /etc/systemd/system/myflaskapp.service
  1. 添加以下内容到 myflaskapp.service 文件中:
[Unit]
Description=Gunicorn instance to serve my flask app
After=network.target

[Service]
User=your_username
Group=your_groupname
WorkingDirectory=/home/your_username/myflaskapp
ExecStart=/usr/local/bin/gunicorn --workers 3 --bind unix:myflaskapp.sock -m 007 app:app

[Install]
WantedBy=multi-user.target

请将 your_usernameyour_groupname 替换为你的实际用户名和组名。

  1. 启动并启用服务:
sudo systemctl start myflaskapp
sudo systemctl enable myflaskapp
  1. 检查服务状态:
sudo systemctl status myflaskapp

6. 使用 Nginx 作为反向代理

为了更好地处理 HTTP 请求和提供静态文件服务,建议使用 Nginx 作为反向代理。

  1. 安装 Nginx:
sudo yum install -y nginx
  1. 配置 Nginx:

编辑 Nginx 配置文件 /etc/nginx/nginx.conf 或创建一个新的配置文件,例如 /etc/nginx/conf.d/myflaskapp.conf

server {
    listen 80;
    server_name your_domain_or_ip;

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/your_username/myflaskapp/myflaskapp.sock;
    }
}

请将 your_domain_or_ip 替换为你的域名或 IP 地址,并将 your_username 替换为你的实际用户名。

  1. 启动 Nginx 并设置开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx

7. 验证部署

现在,你可以通过浏览器访问你的服务器 IP 或域名,看到 “Hello, World!” 的消息,表明 Flask 服务已经成功部署。

8. 其他注意事项

  • 确保防火墙允许 80 端口的流量,如果使用的是 SELinux,确保其配置允许 Nginx 访问 Unix 套接字。
  • 定期更新依赖和系统,以确保安全性。

通过以上步骤,你就可以在 CentOS 上成功部署一个 Python Flask 服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值