在服务器上部署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
像这样就进入了虚拟环境
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
这里安装的依赖都是在虚拟换境下的
配置生产模式
export ops_config=production
启动项目
python manager.py runserver
测试一下
发现失败了,想一想这是什么原因?
因为我们的端口没有开放,我们去宝塔面板打开8998端口,在阿里云上也是如此
宝塔->安全
阿里云->控制台->实例->本实例安全组
然后再次测试,发现已经可以使用了
使用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
启动
uwsgi --ini uwsgi.ini
查看
cd /www/wwwlogs/www.guizimo.top/azlg/
tail -f azlg.log
已经启动了四个进程,注意换了端口号8999,要记得重新开放端口,差不多就可以啦
感谢
万能的网络
以及勤劳的自己