CentOS 部署 flask项目的方法

以下是CentOS部署flask项目的详细攻略。

准备工作

在开始部署之前,我们需要安装一些必要的依赖包和软件:

sudo yum install epel-release
sudo yum install python3 python3-devel python3-pip nginx supervisor

安装完成后,我们可以检查python3和pip3是否安装成功:

python3 -V
pip3 -V

创建虚拟环境

使用虚拟环境可以有效地隔离不同项目之间的依赖,使得每个项目都可以独立地维护其所需的库和版本。

在安装完虚拟环境之后,我们可以在项目的根目录下创建一个新的虚拟环境:

python3 -m venv venv

启动虚拟环境并安装flask:

source venv/bin/activate
pip3 install flask

配置Nginx

Nginx是一款高性能的HTTP服务器,可以作为反向代理服务器用于将请求转发到应用程序或Web服务器。

在CentOS上安装Nginx:

sudo systemctl start nginx
sudo systemctl enable nginx

编辑Nginx配置文件/etc/nginx/conf.d/flask.conf:

server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     }
}

上述配置的作用是将所有的80端口的请求都转发给本地的8000端口,我们需要在应用程序中使用8000端口:

FLASK_APP=app.py flask run --host=127.0.0.1 --port=8000

配置Supervisor

Supervisor是一个进程管理工具,可以帮助我们在服务器意外宕机或重启之后,自动重启flask应用程序,从而保证应用的高可用性。

安装Supervisor:

sudo systemctl start supervisord
sudo systemctl enable supervisord

在/etc/supervisord.d/flask.conf中添加以下内容:

[program:flask]
command=/path/to/venv/bin/flask run --host=127.0.0.1 --port=8000
directory=/path/to/project/folder
autostart=true
autorestart=true
stderr_logfile=/var/log/flask.err.log
stdout_logfile=/var/log/flask.out.log
user=yourusername

上述配置的作用是当Supervisor在运行的时候,启动flask程序,并将标准和错误输出日志记录到/var/log/flask.out.log和/var/log/flask.err.log中。

最后,使用以下命令重新加载Supervisor配置并启动flask

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start flask

这样,我们就完成了CentOS上flask项目的部署。

下面是一个示例,假设我们的flask应用程序名为myapp,项目文件夹为/home/user/myapp

cd /home/user/myapp
source venv/bin/activate
pip3 install flask

sudo vim /etc/nginx/conf.d/flask.conf
# 确保server_name参数与您的域名匹配
# 将代理路径更新为您的项目路径
sudo systemctl restart nginx

sudo vim /etc/supervisord.d/flask.conf
# 确保command和directory参数与您的项目路径匹配
sudo systemctl restart supervisord

当以上步骤都已成功执行并启动后,我们可以以此方式来管理我们的flask应用程序:

sudo supervisorctl start myapp
sudo supervisorctl stop myapp
sudo supervisorctl restart myapp

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CentOS 部署 flask项目的方法 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 单机Linux下搭建MongoDB副本集-三节点

    前言说明  Linux下安装MongoDB副本集我基本上是一次搭建,几百年不再碰,也记不住具体的命令,偶尔需要搭建都是直接网上找的教程。 有些教程很精简,有些又版本不一样,所以索性我整合下别人的教程,把linux下搭建副本集的步骤记录下并分享出来,希望能够帮到你们。   参考以下文章:https://developer.aliyun.com/article/…

    Linux 2023年4月10日
    00
  • linux网络开发者定位问题常用工具和命令总结

    linux网络开发者定位问题常用工具和命令总结 2023-04-15 12:05 itwolf 阅读(0) 评论(0) 编辑 收藏 举报 本文章来自我的微信个人技术公众号—网络技术修炼,公众号中总结普及网络基础知识,包括基础原理、网络方案、开发经验和问题定位案例等,欢迎关注。 Linux网络开发者面临的问题往往比较复杂,因此需要使用一些工具和命令来进行定…

    Linux 2023年4月16日
    00
  • 浅谈Ubuntu中的软件包

    1. 前言 还记得大学第一次接触Ubuntu和Linux的时候,觉得用apt安装想要的软件非常方便。但是有时候出现了问题,各种报错,自己又不懂原理,就会非常抓狂。现在稍微理解一点了,故以较为容易理解的方式记录在这里,方便他人。 2. 软件包与包管理器dpkg Linux里的软件就是一些可执行文件。就像是你自己写个main.c,里面printf(“hello …

    Linux 2023年5月8日
    00
  • Linux系统怎么搭建Samba共享服务器?

    下面是针对Linux系统搭建Samba共享服务器的完整攻略。 什么是Samba? Samba是一种开放源代码软件,是一种能够将Linux系统与Windows系统进行互操作的协议。使用Samba,可以在Linux系统中搭建一个共享服务器,让Windows系统中的用户可以访问共享资源,如共享文件夹、打印机。 搭建Samba共享服务器步骤 以下是针对Ubuntu系…

    Linux 2023年5月14日
    00
  • linux下安装php的lua扩展

      1. 进入管理员权限使用yum安装 readline(也可以使用wget下载后./configure 然后 make && make install进行安装) yum install -y readline-devel ncurses-devel   2. 安装完成readline之后,可退出管理员权限,下载lua安装文件 wget -c…

    Linux 2023年4月12日
    00
  • Linux下的进程控制块(PCB)

    本文转载自Linux下的进程控制块(PCB) 进程在操作系统中都有一个户口,用于表示这个进程。这个户口操作系统被称为PCB(进程控制块),在linux中具体实现是 task_struct数据结构。 说明 进程控制块(PCB)(系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程。系统利用PCB来控和管理进程,所以PCB是…

    Linux 2023年4月13日
    00
  • linux数据恢复ext3grep rm -rf的详细介绍

    Linux数据恢复ext3grep命令详细介绍 1. 简介 ext3grep是一个在Linux平台上恢复已经删除的文件和目录的工具。它利用文件系统留下的元数据,如inode和目录项,来恢复删除的文件和目录。 2. 安装 ext3grep的安装可以通过Linux的包管理器进行安装,如Debian系列的apt,Red Hat系列的yum等。以下是在Debian系…

    Linux 2023年5月14日
    00
  • linux简单命令5—开机与重启

    时间可以写为:now。shutdown命令是安全的命令(保存运行程序) 2:下面为其他不安全的关机命令 必须正确退出登录,window是注销  

    Linux 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部