阿里云服务器部署flask+Pytorch深度学习模型+nginx

简介: 本课程设计是开发一款具备AI能力的微信小程序,为了能让真机测试通过并成功上线,需要把flask+Pytorch深度学习模型部署到阿里云服务器,实现前后端的交互。对于服务器部署我们使用nginx进行ssl证书部署,修改nginx.conf文件,安装gunicorn库通过命令gunicorn -w 2 -b 127.0.0.1:5000 -demo:app命令来运行项目,使前后端能够交互,实现小程序的核心功能。

一、自我介绍:
本人学的是电子信息专业,目前在读大二,因为课程设计是做一款具有AI能力的微信小程序,需要把Pytorch深度学习模型部署到云服务器上,实现真机能够测试的效果。在选择云服务器上,隔壁实验室的同学就推荐阿里云的服务器,说学生可以参加“飞天加速计划·高校学生在家实践”活动”,然后就开始了阿里云服务器的学习之旅。

二、两周学习经历:
这两周的学习确实收获还挺大的,而且也已经实现了将Pytorch深度模型部署到云服务器上,微信小程序通过接口能够访问服务器,真机测试也通过了。但是由于域名没有备案,所以暂时只能通过云服务器的IP地址访问。接下来就是学习的过程。
首先我们拥有一台服务器之后,需要申请域名,然后域名解析到服务器的IP地址,再就是申请阿里的免费的SSL证书,拥有证书之后要让我们的域名能够访问,必须要进行证书部署,我选择的是通过ngixn服务器部署,接下来就是我学习nginx遇到的各种问题和解决方法。
我们通过远程登录服务器,用户名默认是root,输入密码:XXXX。进入服务器是控制台之后,由于我使用的是ubuntu18.04版本会默认安装python3版本。首先,我们安装虚拟环境vurtualenv,通过pip3 insall virtualenv命令来执行,安装成功后新建虚拟环境目录env, t通过命令virtualenv env来执行。然后进入虚拟环境通过命令source env/bin/activate 进入成功后会显示(env)root@... 通过cd env命令进入虚拟环境根目录, 然后再安装nginx 通过sudo apt-get install nginx命令来执行,输入nginx-t 来检测配置文件有没有问题,返回结果是success ok 就是正确的配置,然后把公网的ip输入到浏览器上访问会出现Welcome to nginx!页面,接下来就是SSL证书部署到nginx.
我们通过命令cd /etc/nginx/命令切换到nginx目标下 通过ls命令可以查看到该目录下有nginx.f文件 通过vim nginx.f命令打开文件 输入命令i 进入insert模式可以修改数据 我们将server{}里面的listen 80注释掉,然后开启listen 443 ssl 进行证书部署 将下载的证书.pem和.key文件拷贝到该文件内,server_name后面填写自己的服务器域名,注意要通过ssh本地远程连接服务器,将文件上传服务端的指定目录下,然后我们再复制目标到nginx.f文件内,配置完成后通过nginx-t命令来验证配置文件是否正确,再通过命令systemctl nginx start命令重启nginx服务器,没有报错说明配置文件有效。
注意:这里千万要注意,如果我们的域名没有备案,那么我们即使将ssl证书部署到nginx服务器也无法正常访问网页,当然如果想验证可以通过命令curl http://XXXXXX:5000 如果能返回html的代码数据,说明证书部署是正确的,只不到需要等域名备案通过了才能访问网站,这个问题困扰了我好几天才解决,之前还以为是防火墙的原因,后面开放防火墙80 443端口还是不行,那就是域名需要备案。
接下来就是安装gunicor和后端flask+pytorch模型部署
我们在虚拟环境下通过命令sudo pip3 install gunicorn,使用Pycharm远程连接服务器,将本地项目上传到服务器的虚拟环境中,我们通过命令gunicorn -w 2 -b 127.0.0.1:5000 -demo:app命令来执行,可以发现服务能够运行,如何发现端口被占用,通过命令netstat找到被占用端口的PID ,通过kill -9 PID命令杀掉进程来释放端口就行了。最后再使用命令gunicorn -w 2 -b 127.0.0.1:5000 -demo:app将服务调动起来,打开小程序就可以进行前后端的交互了。

三、两周收获与总结
通过这两周的学习,我对云服务部署后端项目具备了一定的基础,特别是我这种linux操作系统小白来说收获是非常大的。我现在能够熟练的使用linux操作系统的常用指令对文件进行操作以及项目的部署,遇到的常见问题也可以解决,对应netstat和kill -9 PID命令使用也很流畅,知道端口被占用了该如何快速解决,最开心的我的小程序已经实现了前后端的交互,项目可以说是完成了,后面就是进行域名的备案,耐心的等待审核通过就可以使用我自己的域名来访问云服务器了。

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
机器学习/深度学习 人工智能 Anolis
手把手教学攻略:在Anolis OS上部署OpenVINO深度学习模型
Anolis OS 作为国内首个正式提供 OpenVINO 开发包和镜像的服务器端操作系统,推动国内 AI 推理生态和能力的升级。
|
并行计算 监控 搜索推荐
使用 PyTorch-BigGraph 构建和部署大规模图嵌入的完整教程
当处理大规模图数据时,复杂性难以避免。PyTorch-BigGraph (PBG) 是一款专为此设计的工具,能够高效处理数十亿节点和边的图数据。PBG通过多GPU或节点无缝扩展,利用高效的分区技术,生成准确的嵌入表示,适用于社交网络、推荐系统和知识图谱等领域。本文详细介绍PBG的设置、训练和优化方法,涵盖环境配置、数据准备、模型训练、性能优化和实际应用案例,帮助读者高效处理大规模图数据。
541 5
|
机器学习/深度学习 边缘计算 PyTorch
PyTorch 与 ONNX:模型的跨平台部署策略
【8月更文第27天】深度学习模型的训练通常是在具有强大计算能力的平台上完成的,比如配备有高性能 GPU 的服务器。然而,为了将这些模型应用到实际产品中,往往需要将其部署到各种不同的设备上,包括移动设备、边缘计算设备甚至是嵌入式系统。这就需要一种能够在多种平台上运行的模型格式。ONNX(Open Neural Network Exchange)作为一种开放的标准,旨在解决模型的可移植性问题,使得开发者可以在不同的框架之间无缝迁移模型。本文将介绍如何使用 PyTorch 将训练好的模型导出为 ONNX 格式,并进一步探讨如何在不同平台上部署这些模型。
2164 2
|
机器学习/深度学习 边缘计算 PyTorch
PyTorch 与边缘计算:将深度学习模型部署到嵌入式设备
【8月更文第29天】随着物联网技术的发展,越来越多的数据处理任务开始在边缘设备上执行,以减少网络延迟、降低带宽成本并提高隐私保护水平。PyTorch 是一个广泛使用的深度学习框架,它不仅支持高效的模型训练,还提供了多种工具帮助开发者将模型部署到边缘设备。本文将探讨如何将PyTorch模型高效地部署到嵌入式设备上,并通过一个具体的示例来展示整个流程。
4375 1
|
存储 Linux 开发工具
【Azure App Service】本地Git部署Python Flask应用上云(Azure App Service For Linux)关键错误
【Azure App Service】本地Git部署Python Flask应用上云(Azure App Service For Linux)关键错误
287 1
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
1230 87
|
编解码 应用服务中间件 Linux
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
832 1
|
负载均衡 应用服务中间件 nginx
Nginx配置与命令
Nginx 是一款高性能的 HTTP 和反向代理服务器,其配置文件灵活且功能强大。本文介绍了 Nginx 配置的基础结构和常用指令,包括全局块、Events 块、HTTP 块及 Server 块的配置方法,以及静态资源服务、反向代理、负载均衡、HTTPS 和 URL 重写等功能实现。此外,还提供了常用的 Nginx 命令操作,如启动、停止、重载配置和日志管理等,帮助用户高效管理和优化服务器性能。
1406 14
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
649 18

推荐镜像

更多