源码链接
1、版本v1.0
(1)融合以下两个项目。
第一个项目Chinese-and-Western-Food-Classification:使用MobilenetV2训练数据集Food101+ChineseFoodNet,模型已训练好。
第二个项目keras-flask-deploy-webapp:搭了一个方便快速部署机器学习模型的webapp框架。
(2)部署到云服务器上
参考:How to Deploy Flask Application with Nginx and Gunicorn on Ubuntu 20.04
WSGI(web server gateway interface):即web服务器网关接口,是Web应用程序(如Flask)和Web服务器(如Nginx)之间的一种通信协议。实现该协议的web服务器有uWSGI、gunicorn。
一个网站 = web服务器(如uWSGI、gunicorn)+web应用(django、flask)
一个分布式网站 = nginx(高性能web服务器,负载均衡、拦截静态请求)+web服务器(如uWSGI、gunicorn)+ web应用(django、flask)
本项目使用架构:nginx+gunicorn+flask
1.准备一台云服务器(腾讯云or阿里云)
操作系统:Ubuntu Server 20.04 LTS 64bit
2核2G,系统盘40GB
默认登录用户:ubuntu,密码需自行重置
2.安装必要的依赖
sudo su - # 切换为root用户
apt-get update -y # 更新源的索引
apt-get upgrade -y # 根据最新的源升级已有的安装包
# 安装一些必要的依赖
apt-get install python3 python3-pip python3-dev build-essential libssl-dev libffi-dev python3-setuptools -y
# 安装venv模块,用于创建虚拟环境
apt-get install python3-venv -y
3.安装Nginx并测试
apt-get install nginx -y
systemctl start nginx # 开启
systemctl enable nginx # 设置开机自启
# 测试:浏览器输入云服务器公网IP(默认80端口)
ps: 确保云服务器的80端口是可访问的
4.本地上传项目,创建虚拟环境,并安装gunicorn、flask及项目所需依赖
cd ~ # 切换到root用户目录下,即/root目录
rz # xshell上传Graduation_Design_v1.0.zip到当前目录
unzip -d ~ Graduation_Design_v1.0.zip # 解压项目到当前目录,即/root
cd Graduation_Design_v1.0
python3 -m venv gd # 在项目根目录下创建虚拟环境gd
source gd/bin/activate # 激活虚拟环境
# 安装项目依赖,安装方式参考官网https://anaconda.org/
pip install wheel
pip install gunicorn flask gevent pillow opencv-python torch torchvision
deactivate # 退出虚拟环境
5.配置Gunicorn并为flask应用创建一个Systemd Service File,使用Systemd来管理
vi /etc/systemd/system/flask.service
# 配置内容如下
# WorkingDirectory对应上面的项目根目录,Environment中gd对应上面创建的虚拟环境目录
# ExecStart定义启动进程时执行的命令。app:app,前一个app对应flask项目中的启动文件app.py,后一个app对应app.py中的flask实例对象名称(app = Flask(__name__))
# 与Nginx通信的端口,这