阿里云服务器部署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
相关文章
|
11月前
|
弹性计算 人工智能 前端开发
在阿里云ECS上部署n8n自动化工作流:U2实例实战
本文介绍如何在阿里云ECS的u2i/u2a实例上部署开源工作流自动化平台n8n,利用Docker快速搭建并配置定时任务,实现如每日抓取MuleRun新AI Agent并推送通知等自动化流程。内容涵盖环境准备、安全组设置、实战案例与优化建议,助力高效构建低维护成本的自动化系统。
2333 5
|
11月前
|
Java Linux Apache
在CentOS服务器上编译并部署NiFi源码
部署Apache NiFi在CentOS上是一个涉及细节的过程,需要注意Java环境、源码编译、配置调整等多个方面。遵循上述步骤,可以在CentOS服务器上成功部署和配置Apache NiFi,从而高效地处理和分发数据。
342 17
|
12月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
592 18
|
12月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
974 17
|
12月前
|
弹性计算 安全 Linux
使用阿里云服务器安装Z-Blog博客网站流程,新手一键部署教程
本教程教你如何在阿里云99元服务器上,通过宝塔Linux面板一键部署Z-Blog博客。基于CentOS 7.9系统,从远程连接、安装宝塔面板、开放端口到部署Z-Blog全流程详解,操作简单,新手也能轻松搭建个人博客网站。
1279 13
|
12月前
|
弹性计算 Devops Shell
用阿里云 DevOps Flow 实现 ECS 部署自动化:从准备到落地的完整指南
阿里云 DevOps Flow 是一款助力开发者实现自动化部署的高效工具,支持代码流水线构建、测试与部署至ECS实例,显著提升交付效率与稳定性。本文详解如何通过 Flow 自动部署 Bash 脚本至 ECS,涵盖环境准备、流水线搭建、源码接入、部署流程设计及结果验证,助你快速上手云上自动化运维。
958 0
监控 安全 Linux
671 0
|
缓存 负载均衡 JavaScript
Nginx:高性能Web服务器与反向代理利器
Nginx:高性能Web服务器与反向代理利器
555 110