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

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

博客说明

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

需要的环境

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

创建目录

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

上传要部署的项目

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

image-20200424110657228

创建虚拟目录

virtualenv venv

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

source venv/bin/activate

image-20200424112314111

像这样就进入了虚拟环境

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

image-20200424114107350

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

配置生产模式

export ops_config=production

启动项目

python manager.py runserver

测试一下

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

image-20200424114953362

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

宝塔->安全

image-20200424115234368

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

image-20200424115650379

image-20200424115839905

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

image-20200424120125545

使用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

image-20200424122346017

启动

uwsgi --ini uwsgi.ini

image-20200424122945831

查看

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

image-20200424123736181

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

感谢

万能的网络

以及勤劳的自己

发布了282 篇原创文章 · 获赞 688 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_45163122/article/details/105728750
今日推荐