在服务器上部署Flask代码(从单进程到多进程)
博客说明
文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!
需要的环境
使用的是nignx,python3.8.2,虚拟环境
创建目录
首先创建一个目录,我之前用过宝塔,所以我的项目目录在 /www/wwwroot/www.guizimo.top下
上传要部署的项目
把项目文件上传到/www/wwwroot/www.guizimo.top下,并解压
![4ec88c85269b0bea1959718a1c3f0945.png](https://i-blog.csdnimg.cn/blog_migrate/2a29e76779f5913bebb619063375de99.png)
创建虚拟目录
virtualenv venv
有了venv
这个Python环境,可以用source
进入该环境
source venv/bin/activate
![fdde12fe1f444965a9db340342ce854d.png](https://i-blog.csdnimg.cn/blog_migrate/3236740746a796e590db4d14cb275737.png)
像这样就进入了虚拟环境
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
![ef40acaff0bfd3e0c4f1fcebce87f05b.png](https://i-blog.csdnimg.cn/blog_migrate/7a252b7797d0e6476d21bdaee29a0dfd.jpeg)
这里安装的依赖都是在虚拟坏境下的
配置生产模式
export ops_config=production
启动项目
python manager.py runserver
![2fa4de273488ccf329dd960d2c3ed390.png](https://i-blog.csdnimg.cn/blog_migrate/5d32e69c788c4fbbff79468b45cc583d.png)
测试一下
发现失败了,想一想这是什么原因?
![9fc6c718304c4e7c57809f141a67d6c7.png](https://i-blog.csdnimg.cn/blog_migrate/fb87f42ca517e7c6b9a854c8510568ad.jpeg)
因为我们的端口没有开放,我们去宝塔面板打开8998端口,在阿里云上也是如此
宝塔->安全
阿里云->控制台->实例->本实例安全组
![713899c01af6994b77187d3d64de0273.png](https://i-blog.csdnimg.cn/blog_migrate/d9b3c6979fc719b1a5ab20c0efe0aed2.jpeg)
![2a22bfba64866dc97f00529dd5727880.png](https://i-blog.csdnimg.cn/blog_migrate/b93c57841672625b8c60e2a289a7c856.png)
然后再次测试,发现已经可以使用了
![f0cd6a8e093e981f32dc115ed7b4514c.png](https://i-blog.csdnimg.cn/blog_migrate/5ff64d3d36b9344fcd1e096c713f6bdb.jpeg)
使用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
![cb5fd3063dd1a73bbb1d8e125472d523.png](https://i-blog.csdnimg.cn/blog_migrate/d1ac575abbe93f5af7c295282ce8989b.jpeg)
启动
uwsgi --ini uwsgi.ini
![undefined_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=a7bfc057-1e32-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/undefined_b.jpg)
查看
cd /www/wwwlogs/www.guizimo.top/azlg/
tail -f azlg.log
![e0f073eff26e575c3beb0d1ff6898707.png](https://i-blog.csdnimg.cn/blog_migrate/1c94841673b4ac68353a00fed284fded.jpeg)
已经启动了四个进程,注意换了端口号8999,要记得重新开放端口,差不多就可以啦
感谢
万能的网络
以及勤劳的自己