创新实训2024.06.06日志:部署web服务

news2024/11/6 7:19:58

1. 运行web项目前后端服务

首先我们要先在服务器上运行客户端以及服务端的应用程序。随后再考虑如何通过公网/局域网访问的问题。

如何启动服务在仓库对应分支下的Readme文件中已经有详细描述了。

1.1. 启动服务端

对于服务端,即(要求你在服务端子项目的根目录下)

python .\startup.py

看到如下控制台信息表示Uvicorn web服务器启动成功。

1.2. 启动客户端

对于客户端,即(同样要求在客户端子项目的根目录下)

npm run serve

 这里我把该装的软件和依赖都装好了,比如客户端是用node.js+vue.js开发的,首先要进行:

npm install

而node.js本身的依赖,可从官网下载(服务器上的环境是20.14版本的):Node.js — Run JavaScript Everywhere (nodejs.org)

 看到如下控制台信息即为启动成功:

1.3. 配置redis服务

我们这台服务器是windows11 64位操作系统的,因此redis官网:Redis - The Real-time Data Platform的release不适用于我们。(原生redis对linux各个发行版支持的比较好)

这里需要使用到一个开源库:tporadowski/redis: Native port of Redis for Windows. Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs. This repository contains unofficial port of Redis to Windows. (github.com)

这是一个来自波兰的开源作者(主要)用C写得redis-for-windows版本,在windows上安装部署比较方便,对windows的支持也不错。

目前这个开源库的release: Releases · tporadowski/redis (github.com)已经到了5.0.14版本了。这里我用的就是最新版的5.0.14.1,直接在这个页面最顶部的Assets里下载就可以。

免安装版和安装版都可以,免安装版下载下来直接解压就可以了。

然后再顺手配个环境变量。

redis的服务是通过redis-server应用程序启动的,而redis还提供一个命令行客户端,redis-cli。

 如果遇到win+r,cmd输入redis-server,命令行窗口闪退的情况,可以win+r,cmd,输入redis-cli。如下图输入:

shutdown

随后再利用redis-server启动redis服务即可(这是因为有可能之前启动redis服务后没有正确的退出,导致6379端口被占用,再次启动时失败),如果还出问题,可能需要查一下现在6379(或者你配置了另外的redis服务端口) 端口被谁占用了。

如果正确启动,如下图:

为了更好地与redis服务交互,我还安装了个能和redis数据库连接并查看数据的GUI,RESP。

这个也是一个开源库提供的软件:lework/RedisDesktopManager-Windows: RedisDesktopManager Windows版本 (github.com)

Redis windows desktop manager,能够提供一个很不错的GUI。解压后直接运行里面的resp.exe文件即可。

可以查看自己的数据库、表,以及创建多个连接。

2. 内网穿透实现公网访问

内网穿透技术一般采用端口映射的方式,将内网的一个端口映射到公网中可访问的端口上 ,以此实现公网访问局域网的资源。

2.1. 飞鸽内网穿透

这里我使用的是飞鸽内网穿透工具,是一个提供GUI的在线内网穿透服务网站:飞鸽内网穿透官网 (fgnwct.com)

注册登录后,在控制台中选择开通隧道服务,这里会有一些可选项。我选择的是香港无备案穿透服务。

此处需要填写隧道的用途,ip+端口号,以及子域名。

 这里我是没有购买其他机构的SSL证书(华为云一年¥1500,阿里云一年¥2200,Amazon还要公司法人认证。买不起)。如果购买了SSL证书,配置之后还可以支持HTTPS协议,安全性更好。

随后下载飞鸽提供的客户端应用程序:

随后点开之前开通的隧道的小箭头,下面会有利用命令行客户端启动内网穿透服务的命令:

复制这条命令,在下载完客户端后启动命令行程序,输入该命令。

 即可成功连接到服务器。

在将客户端和服务端的内网穿透配置均设置好之后,即可实现对web服务的公网访问:

某一服务功能点运行示例如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1795036.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

知了汇智携手数字经济商会,共促物联网鸿蒙产教融合新篇章

5月31日,由成都市数字经济商会主办,华为技术有限公司协办,成都知了汇智科技有限公司及成都市数字经济商会人才专委会共同承办的“产教融合物联网鸿蒙人才交流”大会在成都天府软件园产教融合基地隆重举办。 会议旨在加速四川省鸿蒙技术产业的…

chat4-Server端保存聊天消息到mysql

本文档描述了Server端接收到Client的消息并转发给所有客户端或私发给某个客户端 同时将聊天消息保存到mysql 服务端为当前客户端创建一个线程,此线程接收当前客户端的消息并转发给所有客户端或私发给某个客户端同时将聊天消息保存到mysql 本文档主要总结了将聊天…

VUE3 学习笔记(11):vue-router路由要懂的知识点

在前后端没有分离之前,大家通常采用的MVC模式,由后端通过Controller层实现页面跳转,VUE是组件化的特点,说白了就是一个单页面应用(挂载在public/index.html),意味着所有的页面只是各组件的组合。…

关于按键消抖方法—软件消抖

在设计单片机按键输入的时候,进行按键消抖是防止按键输入被CPU误读多次的必要手段。 一、按键消抖方法(软件) 如果按键较多的情况下,常用软件方法消抖 (1)延时消抖(延时函数按键消抖&#xf…

24 - 查询近30天活跃用户数(高频 SQL 50 题基础版)

24 - 查询近30天活跃用户数 排序和分组 -- 日期相减 date_sub(2019-07-27, interval 30 day)获取新的日期 -- 日期范围 datediff(2019-07-27,activity_date)<30-- where activity_date > date_sub(2019-07-27, interval 30 day) -- and activity_date < 2019-07…

网络编程(八)

网络编程&#xff08;八&#xff09; 数据库数据库的分类基于嵌入式的数据库什么是SQLite?为什么使用SQLite?sqlite3数据库的安装 sqlite3中的点命令.open 数据库文件名字.tables [数据库文件名].schema 表名.database.quit.head on.mode column SQLite数据库中的数据类型SQL…

数据库MongoDB详解

文章目录 入门指南1. 安装 MongoDB2. 启动 MongoDB 服务3. 连接到 MongoDB4. 创建数据库和集合5. CRUD 操作6. 索引7. 备份与恢复 不同场景下的应用方式&#xff1a;应用案例展示 入门指南 MongoDB 是一个基于分布式文件存储的非关系型数据库&#xff08;NoSQL&#xff09;&am…

uniapp3步使用goeasy完成本地消息推送

1.注册登录goeasy&#xff0c;下载测试demo 2.替换demo中main.js中的key 3.打包一个H5&#xff0c;一个自定义基座。 h5发消息&#xff0c;app收消息&#xff0c;然后创建消息通知就好了。记得打开app的消息通知 demo很简单&#xff0c;demo都跑通了&#xff0c;在搬到自己项目…

OZON海关税费是多少,OZON要交关税吗

在跨境电商领域&#xff0c;OZON作为俄罗斯知名的电商平台&#xff0c;吸引了众多国内外商家的目光。然而&#xff0c;当商家考虑在OZON平台上开展业务时&#xff0c;一个不可回避的问题就是海关税费和关税问题。本文将详细探讨OZON海关税费的相关内容&#xff0c;帮助商家更好…

【时间复杂度】定义与计算方法

文章目录 1.什么是时间复杂度&#xff1f;2.时间复杂度类别2.1 常量阶 O(1)2.2 对数阶 O(log n)2.3 线性阶 O(n)2.4 线性对数阶 O(n log n)2.5 平方阶 O(n^2^) 1.什么是时间复杂度&#xff1f; 时间复杂度是计算机科学中用来描述算法执行时间效率的一个概念。它表示了算法执行时…

Python中的“点阵字体”

“点阵字体”是个啥&#xff1f;&#xff0c;在python中怎么使&#xff1f;在现在全面高清的 5 G 5G 5G时代&#xff0c;它还有用“武”之地&#xff1f; (笔记模板由python脚本于2024年06月01日 18:44:31创建&#xff0c;本篇笔记适合会基本编程的coder翻阅) 【学习的细节是欢…

Vue.js 与 TypeScript(1) :项目配置、props标注类型、emits标注类型

像 TypeScript 这样的类型系统可以在编译时通过静态分析检测出很多常见错误。这减少了生产环境中的运行时错误&#xff0c;也让我们在重构大型项目的时候更有信心。通过 IDE 中基于类型的自动补全&#xff0c;TypeScript 还改善了开发体验和效率。 一、项目配置 1、在项目中添…

USB (1)

再看USB 其实回过头看USB 是可以和无线 有线(internet) 可以和PCIe 甚至AXI类比的 它们共通处在于都是communication 有限通信 有7层网络协议 在USB也是分层的 不同的协议,依赖的介质不一样 这就要求相应的Physical层处理 USB的physical层是基于Serdes的,所以有串并/并串的…

组装服务器重装linux系统【idrac集成戴尔远程控制卡】

&#x1f341;博主简介&#xff1a; &#x1f3c5;云计算领域优质创作者 &#x1f3c5;2022年CSDN新星计划python赛道第一名 &#x1f3c5;2022年CSDN原力计划优质作者 &#x1f3c5;阿里云ACE认证高级工程师 &#x1f3c5;阿里云开发者社区专…

内网安全--隧道技术代理技术

注:本文仅做技术交流,请勿非法破坏... 目录 项目: 1-Ngrok 用法 2-Frp 用法 3-Nps 用法 4-Spp 用法 工具: windows下: Proxifier(推荐~) Sockscap ccproxy Linux下: Proxychains 用法 http://t.csdnimg.cn/88Ew7 隧道技术&#xff1a;解决不出网协议上线的问…

ARM Linux 驱动开发学习之字符设备驱动开发

Linux 中的设备驱动程序是连接硬件设备和操作系统之间的重要桥梁&#xff0c;确保硬件设备能够在操作系统控制下正常工作。在 Linux 中&#xff0c;设备驱动主要分为三大类&#xff1a;字符设备驱动、块设备驱动和网络设备驱动。下面我将详细解释这三类驱动的特点、用途和区别。…

激活函数对比

激活函数 sigmoid / tanh / relu / leaky relu / elu / gelu / swish 1、sigmoid 优缺点 1) 均值!0&#xff0c;导致fwxb求导时&#xff0c;方向要么全正要么全负 可以通过batch批量训练来缓解 2) 输入值大于一定范围梯度就会消失 3) 运算复杂 2、tanh 优缺点 1) 均值0 2)…

To C道路越走越夯实,1688彻底变身了?

在偌大的电商市场&#xff0c;消费者都是专业的“掘宝者”&#xff0c;热衷于发现各种新奇商品和采购新通路。 拼多多、1688等平台也正是在这种情况下&#xff0c;成为消费市场的“宠儿”。其中&#xff0c;1688的发展路径较为独特&#xff0c;据天眼查&#xff0c;其为源头厂…

苍穹外卖笔记-07-菜品管理-增加、删除、修改、查询分页还有菜品起售或停售状态

菜品管理 1 新增菜品1.1 需求分析与设计1.2 代码开发文件上传新增菜品实现 1.3 功能测试 2 菜品分页查询2.1 需求分析和设计2.2 代码开发设计DTO类设计VO类Controller层Service层Mapper层 2.3 功能测试 3 删除菜品3.1 需求分析和设计3.2 代码开发Controller层Service层Mapper层…

Apple开发者证书创建完整过程

1.创建CSR文件: 打开钥匙串访问程序 选择从证书颁发机构请求 创建证书 保存CSR文件到桌面 成功如下: 开始创建证书: 选择