在服务器上部署Flask代码(从单进程到多进程)

Posted 归子莫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在服务器上部署Flask代码(从单进程到多进程)相关的知识,希望对你有一定的参考价值。

在服务器上部署Flask代码(从单进程到多进程)

博客说明

文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!

需要的环境

使用的是nignx,python3.8.2,虚拟环境

创建目录

首先创建一个目录,我之前用过宝塔,所以我的项目目录在 /www/wwwroot/www.guizimo.top下

上传要部署的项目

把项目文件上传到/www/wwwroot/www.guizimo.top下,并解压

创建虚拟目录

virtualenv venv

有了venv这个Python环境,可以用source进入该环境

source venv/bin/activate

​ 在服务器上部署Flask代码(从单进程到多进程)

像这样就进入了虚拟环境

python环境安装

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel  mysql-devel gcc gcc-devel python-devel

安装项目依赖

 pip3 install -r requirements.txt

​ 在服务器上部署Flask代码(从单进程到多进程)

这里安装的依赖都是在虚拟境下的

配置生产模式

export ops_config=production

启动项目

python manager.py runserver

​ 在服务器上部署Flask代码(从单进程到多进程)

测试一下

发现失败了,想一想这是什么原因?

​ 在服务器上部署Flask代码(从单进程到多进程)

因为我们的端口没有开放,我们去宝塔面板打开8998端口,在阿里云上也是如此

宝塔->安全

​ 在服务器上部署Flask代码(从单进程到多进程)

阿里云->控制台->实例->本实例安全组

​ 在服务器上部署Flask代码(从单进程到多进程)

​ 在服务器上部署Flask代码(从单进程到多进程)

然后再次测试,发现已经可以使用了

​ 在服务器上部署Flask代码(从单进程到多进程)

使用uwsgi实现多线程访问

在项目根目录下创建uwsgi.ini文件,配置跟项目相关的数据,注意修改成自己相关的数据

vim uwsgi.ini
[uwsgi]
#源码目录
chdir=/www/wwwroot/www.guizimo.top/azlg
#python 虚拟环境
home=/www/wwwroot/www.guizimo.top/azlg/venv
module=manager
callable=app
master=true
processes=4
http=0.0.0.0:8999
socket=/www/wwwlogs/www.guizimo.top/azlg/azlg.sock
buffer-size=65535
pidfile=/www/wwwlogs/www.guizimo.top/azlg/azlg.pid
chmod-socket=777
logfile-chmod=644
daemonize=/www/wwwlogs/www.guizimo.top/azlg/azlg.log
static-map = /static=/www/wwwroot/www.guizimo.top/azlg/web/static

​ 在服务器上部署Flask代码(从单进程到多进程)

启动

uwsgi --ini uwsgi.ini

查看

 cd /www/wwwlogs/www.guizimo.top/azlg/
tail -f azlg.log

已经启动了四个进程,注意换了端口号8999,要记得重新开放端口,差不多就可以啦

感谢

万能的网络

以及勤劳的自己


以上是关于在服务器上部署Flask代码(从单进程到多进程)的主要内容,如果未能解决你的问题,请参考以下文章

从单主服务器迁移到多主服务器 Apache KUDU 配置

java从单线程到多线程

Vue-cli创建项目从单页面到多页面4 - 本地开发服务器设置代理

关于ubuntu下 nginx+uwsgi部署flask的坑,有大佬知道为啥吗?

gunicornnginx部署flask项目,并用supervisor来管理进程

flask部署