以下是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技术站