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

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.mzph.cn/news/849029.shtml

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

相关文章

SCARA机器人中旋转花键的维护和保养方法!

作为精密传动元件的一种,旋转花键在工作过程中承受了较大的负荷。在自动化设备上运用广泛,如:水平多关节机械手臂(SCARA)、产业用机器人、自动装载机、雷射加工机、搬运装置、机械加工中心的ATC装置等,最适…

MySQL在某些情况下不使用索引

当然,以下是您提供的内容转换成Markdown格式: 数据量太小:当表中的数据量非常少时,全表扫描可能比使用索引查找更快,因为索引的额外维护和查找成本可能超过直接扫描表的成本。 索引选择性低:如果索引列的值…

如何在Windows 10和11上修复DISM错误87?这里提供办法

​在电脑上运行DISM命令时,是否收到“错误代码87”消息?这是一个非常常见的错误,你可以轻松地修复它。我们将向你展示在Windows 11或Windows 10计算机上解决此问题的多种方法。 确保键入正确的命令 运行DISM命令时出现错误代码87的最常见原…

js将元素滚动到可见区域

除了使用scrollIntoView方法之外,还可以使用scrollIntoViewIfNeeded方法作为兼容性更好的替代方法。scrollIntoViewIfNeeded方法在某些情况下会更加平滑地将元素滚动到可见区域,而不会强制滚动到视口的顶部或底部。它的兼容性也比scrollIntoView方法更好…

AI时代的多维探索

随着人工智能(AI)技术的迅猛发展,我们的生活正在经历一场深刻的变革。从智能家居到自动驾驶,从医疗诊断到金融投资,AI技术正逐渐渗透到社会的各个角落。为了更全面地了解AI时代的发展趋势,我们将通过十个具…

优雅谈大模型10:MoE

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技(Mamba,xLSTM,KAN)则提…

应对800G以太网挑战:数据中心迁移

在过去几年中,云基础设施和服务的大规模使用推动了对更多带宽、更快速度和更低延迟性能的需求。交换机和服务器技术的改进要求布线和架构随之调整。因此,800G以太网对数据中心迁移的需求,特别是对速率(包括带宽、光纤密度和通道速…

进程和计划任务以及步骤

进程 进程和程序有关,把该文件放到内存里,进程是动态的,不同时刻的状态不一样 内存:放置正在运行的程序和所需数据的位置 程序启动 ——》将相关文件和数据放到内存里 ——》进程(processes) 进程相关命令 …

【Python】教你彻底认识Python中的Web开发

​​​​ 文章目录 一、Web开发的基本概念1. Web服务器2. 客户端-服务器模型3. HTTP协议4. 前端与后端 二、常用的Web开发框架1. Django1.1 安装Django1.2 创建Django项目1.3 定义模型1.4 定义视图1.5 定义URL路由1.6 模板 2. Flask2.1 安装Flask2.2 创建Flask应用2.3 模板2.4…

达梦8 并行查询

达梦数据库可以通过在查询语句加/* parallel */ HINT并行执行。下面以一个排序语句为例 我们通过一条监控语句查询排序区的使用情况。 最初没有查询结果(no rows) 伴随着语句insert /* parallel(4) */ into d select * from a order by 2执行&#xff…

WPS超级会员4年,2024年到手值得!

WPS超级会员4年,带来金山办公软件的全新体验!作为正版软件,WPS不仅拥有海量的模板资源,还能轻松实现PDF转word、图片处理、PDF编辑文档修复等功能,让你的办公效率更上一层楼。 购买WPS超级会员4年,你将获得…

大模型日报2024-06-06

大模型日报 2024-06-06 大模型资讯 AI推理缺陷:大型语言模型的局限性 摘要: 研究表明,像ChatGPT这样的流行AI平台在推理测试中给出的答案不一致,并且在增加上下文信息后也没有改善。这揭示了当前大型语言模型在推理能力上的局限性。 Databric…

计算机组成结构—总线

目录 一、总线的基本概念 1.分散连接和总线连接 2.总线的特点和组成 二、总线的分类 1. 片内总线 2. 系统总线 3. 通信总线 三、总线结构 1. 单总线结构 2. 双总线结构 3. 三总线结构 四、总线的性能指标 五、总线标准 六、总线判优(总线仲裁&#xf…

为什么Java中的main方法必须是public static void的?

当我们创建main方法时,首先都是public、都是static,返回值都是void,方法名都是main,入参都是一个字符串数组。 在以上的方法声明中,唯一可以改变的部分就是方法的参数名,我们可以吧args改成任意我们想要使…

【List,ArrayList与顺序表】

目录 1,什么是List 2,List的使用 3,线性表 4,顺序表 4.1 接口的实现 5, ArrayList简介 6,ArrayList的使用 6.1 ArrayList的构造方法 6.2 ArrayList的常见操作 6.3 ArrayList的遍历 7,…

解决CSDN 导入Markdown图片失效不显示问题

每次将MarkDown文件导入CSDN的时候,有些图片总是由于防盗链的问题导致图片加载不出来,还得手动再导一遍,极其不方便。所以我们能不能建立一个属于自己的图片服务器或者说在线图库呢,而且每次使用Typora插入图片的时候都会自动的上…

JVM学习-Arthas

Arthas Alibaba开源的Java诊断工具,在线排查问题,无需重启,动态跟踪Java代码,实时监控JVM状态Arthas支持JDK6,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的Tab自动补全功能&#…

makefile2

makefile的条件判断 运行make。 替换 make -c make-f …… 还可以 man make来查看其他的make命令。

Java可视化界面

一。使用JFrame(创建窗口)JDialog(创建新窗口) //1.创建一个窗口对象JFrame frame new JFrame("一个文件");//2.创建一个容器Container container frame.getContentPane();//3.为容器添加颜色container.setBackground…

pip 永久换源

一. pip换源 1 永久换源 1.1 配置pip.ini文件 先在此电脑的地址栏中输入%APPDATA% 按回车进行跳转到Roaming文件夹中,如果在此文件夹下没有pip文件夹则新建一个pip文件夹,并且新建文件pip.ini,并在里面输入以下内容(此处示例为阿里源)&#x…