基于Node.js与WebSocket搭建服务器 笔记 - 00 - 初建云服务器

2023-11-07 11:50

本文主要是介绍基于Node.js与WebSocket搭建服务器 笔记 - 00 - 初建云服务器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于Node.js与WebSocket搭建服务器 笔记 - 00 - 初建云服务器

文章目录

  • 基于Node.js与WebSocket搭建服务器 笔记 - 00 - 初建云服务器
    • 1. 前言
  • 所有步骤
    • 1、主要思路
    • 2. 准备云服务器
    • 2. 设置防火墙
    • 3. 设置远程登陆
    • 4.应用管理
    • 5. 运行网站
    • 6. 离线部署
  • 总结
    • 1. 额外知识
    • 2.神器 - MobaXterm_Portable

1. 前言

  • 这一篇笔记是基于Espressif_32\Esp32_Notes_08.md笔记之后写的,我已经实现了:在主机上用node.js创建Websocket网页。用该主机局域网内的任意主机打开IP:端口,就可以访问到网页了。任意主机指,可以是原主机,也可以是其他主机,需要在同一个局域网内才可以访问到我电脑的ip地址:192.168.1.109,因为不是公网IP。那这就很苦恼了。

  • 我起初想着起码校园网内地电脑可以访问吧,看了科普视频:简单说网络1-计算机是如何通信的?IP地址与mac地址是什么?dhcp与arp又是什么?,我感觉是可行的。但是想了想又有好多想不通的知识盲区……

  • 所以我换了一个思路,我只需要一个别人能访问的公网IP,然后在这种IP上建立网站就好了(暂时不考虑域名等问题,纯IP访问) 。但是为我的电脑申请公网IP,感觉有点麻烦,所以我想找一台有公网IP的电脑,在这台电脑上运行我的程序就可以了。这时我将目光投向了云服务器。然后我搜索到这篇教程:WebSocket 初识篇。虽然这篇教程写得看不懂,但是给了方向。我找上了tx云服务器,好处就是可以白嫖,领取免费40+款产品。其中就有一个月的轻量应用服务器,然后开启的苦逼的入门尝试。

所有步骤

1、主要思路

参考视频:10分钟零基础部署本地JavaWeb项目到服务器,轻松展示个人作品给小伙伴。
参考代码:JavaScrip-Node.js-Web-koa入门。

  • 其实我的要实现的功能很简单,因为之前拷贝参考代码就可以直接运行打开网页了。那么我只需要在云服务器的电脑上运行这段代码,然后我在其他电脑输入云服务器的(公网)IP:端口,就可以了访问:任意联网电脑都能连上我程序的网站。

  • 但是我在实现的时候漏了一步 —— 打开云服务器的防火墙,导致我一直连不上服务器的IP:端口地址。搞了我几个小时,让我怀疑人生……以为自己的思路又错了……

  • 一开始还以为是不是服务器系统用错了?然后每个系统都试了一下,都失败了。后来我成功后又把几个服务器都试了一遍证明是可以的,确实是防火墙没打开而已。

  • 思考过后我决定用宝塔Linux面板做演示。因为对于现阶段的我来说用什么系统的一样,但是为了方便传文件就选择了有操作界面的宝塔Linux面板。各位学会一个就会其他的了,到时候再按自己需求重置服务器即可。

2. 准备云服务器

  1. 先打开网站:tx云官网,然后注册账号登陆(一系列麻烦操作后)。然后打开实名认证,可从右上角的个人头像 - 账户信息 - 实名认证进入。实名认证之后就可以进入中间下方的领取免费40+款产品。或者直接传送门进入。

在这里插入图片描述

  1. 找到其中的轻量应用服务器,点击“白嫖”即可。因为我已经白嫖了,不能再进入这个领取界面,所以没有截图领取界面。我现在还有个加9元续一个月的活动,但是其实,如果你是学生认证,你也可以获得9元/月购买的资格:校园云服务器。

在这里插入图片描述

  1. 一开始的系统选项不用怕,之后是可以重置选择其他的。不过按照我的教程,选择应用镜像 - 宝塔Linux面板就好了。

在这里插入图片描述

在这里插入图片描述

  1. 进入管理页面的方法有很多,我比较常用的是:从首页-(右上角)控制台-轻量应用服务器进入。或者从大部分页面-(左上角)云产品-轻量应用服务器进入。

在这里插入图片描述

在这里插入图片描述

  1. 进入轻量应用服务器页面后,点击卡片(那个方框的卡片应该是叫卡片吧)进入以下界面。这就算完成第一步了。

在这里插入图片描述

在这里插入图片描述

2. 设置防火墙

我还不知道这个术语应该叫打开防火墙还是关闭防火墙……避免歧义写设置防火墙吧。

  • 为了防止之后忘了,先一开始就设置防火墙。设置之后即使我换系统,如果还是这个服务器的话,防火墙设置是不会变的。这里我添加一个8888的端口。这样之后程序就可以使用这个端口来创建服务器了,其他电脑可以通过IP:端口来访问我创建的网站了。

在这里插入图片描述

在这里插入图片描述

3. 设置远程登陆

  • 有3种方式可以登陆云服务器的终端,一种是直接在轻量应用服务器页面里打开一个网页终端,也就说一键登陆功能。(概要-应用信息-登陆按钮打开的好像就是这个)

在这里插入图片描述

  • 也可以使用VNC登陆,但是感觉还不如上一个好用。而且登陆还需要用户名和密码(在远程登陆信息设置)。

在这里插入图片描述

  • 我们选择第三种,其他登陆方式。前提是要先设置远程登陆信息。需要注意的就是选择用户名,我觉得选择系统默认的就好了,要记住默认的用户名是什么。不同系统的默认用户名不一样,我这里是root,如果是ubuntu系统就可能是ubuntu

在这里插入图片描述

  • 然后用本地电脑,通过SHH工具登陆服务器终端(这种方式其实和VNC登陆类似,不过终究还是本地好用一点,用网络端打字都有延迟卡顿)。推荐教程:win10 开启ssh server服务 远程登录。

  • 在本地电脑开启ssh功能后,就可以在终端使用ssh 用户名@IP的形式连接服务器终端了。如果你是之前连过,而且又将云服务器系统重装,那么就会出现下图中的错误提示。这时只需要到提示的目录C:\Users\Lovely_him\.ssh\找到这个文件known_hosts,用记事本打开,删除里面的内容,再次重新连接就正常了。按提示信息输入yespassword(用户名对应的密码),就可以登陆到系统啦~!

在这里插入图片描述

  • 仔细观察终端回车行的前缀,可发现,这时其实就是以用户root登陆了云服务器。你如果重新查看原本的一键登陆功能,其实是以用户lighthouse身份登陆云服务器。所以其他登陆方式同时一样的,只是平台不一样……

  • 如果要切换不同用户,可以参考:linux 切换登录用户。使用指令su 用户名就可以切换了,如果该用户设置了密码就要输入密码。lighthouse默认是没有密码的。(但是登陆的时候还是需要我输入密码……如果我已经登陆了root,然后切换的话就又不需要密码)

4.应用管理

  • 因为选择了宝塔Linux面板,所以只有这个应用,其他功能都被打包嵌套在里面了。我们根据要求,在登陆到服务器后,使用sudo /etc/init.d/bt default命令来获取管理员用户名和密码。

在这里插入图片描述

  • 前面我们已经设置了防火墙为8888端口放行了,这里直接使用外围面板网址打开,然后输入账号密码登陆。

在这里插入图片描述

  • 然后会弹出一个要求你输入API密钥的窗口。好像是因为用的腾讯专用宝塔面板才有的?第一次弄没有密钥,就点击下方的如何获取tx云API密钥,点击查看

在这里插入图片描述

  • 一顿操作猛如虎后就得如下的密钥了。再把得到的APPIDSecretldSecretKey输入即可。

在这里插入图片描述

  • 然后提示要安装套件,这些是Web服务器的运行环境,如果没有安装会有很多宝塔功能不能使用。如果不使用的话不安装也关系……如果现在没安装,之后手动一个个安装也可以,也不麻烦。

在这里插入图片描述

  • 我这次教程就没使用到刚刚那堆套件,不过还是推荐安装,以防万一。我教程只简单用到node.js。在软件商店内搜索,找到该pm2-5。这个插件包含了node.js的安装。注意安装键在最右边的安装。我一开始找了好久……

  • 安装完后要重新启动一下远程连接,这样就能在终端使用node指令了。

在这里插入图片描述

5. 运行网站

  • 准备工作做完后开始上传工程文件,直接压缩打包,然后拖到网页(在文件选项卡内)内就可以自动识别上传了。最后点击开始上传即可。我的工程文件。

在这里插入图片描述

  • 上传要打包成压缩包,在服务器上再解压,然后打开工程里要运行的.js文件。检查设置的端口号。然后到防火墙里放行。之前放行的8888是宝塔的专用端口,这里我们要再放行一个其他的给我自己用。我随便设置为8880。如果你不安装宝塔面板,那之前设置的那个8888就可以自己用。

在这里插入图片描述

  • 设置防火墙要多一步,现在不仅要在tx云里设置,还要在宝塔面板里设置,缺一都打不开网站。

在这里插入图片描述

在这里插入图片描述

  • 最后在终端里运行.js文件,再用其他电脑访问IP:端口,就可以打开程序里设定的网站了。

在这里插入图片描述

  • 如果运行不成功可能是程序问题,请先本地确保程序是正确的。我的程序是扣教程里的:JavaScrip-Node.js-Web-koa入门。只改了端口号。

6. 离线部署

  • 现在虽然可以打开网站了,但是有点瑕疵。我的远程终端要一直登陆运行程序才可以运行.js文件,维持网站的打开。
  • 可以用screen指令,在服务器上开启一个服务器的本地终端。这样我这个远程终端退出后,本地终端不关闭的话还是在的。用这个本地终端24小时运行.js文件就可以了。
  • 参考笔记:【Linux】 screen 命令详解、Screen 命令安装使用教程。
  • 简单运用就是使用screen -R (随意起名)指令:先试图恢复离线的作业。若找不到离线的作业,即建立新的 screen 作业。退出就用快捷键 Ctrl+a d(即按住 Ctrl,依次再按 a,d)。

在这里插入图片描述

  • 没啥提示信息,所以没得截图。反正最后结果就是我关闭了远程登陆端,也可以打开网站。

总结

  • 我并没有像视频教程(10分钟零基础部署本地JavaWeb项目到服务器,轻松展示个人作品给小伙伴)那样建立网址点,用域名等。目前暂时实现了能用网站这个功能。

  • 如果不用宝塔面板,上传文件可以使用git。我为工程开了一个git项目。然后在ubuntu系统上下载。如果系统没有git功能,可以选择安装,又或者,干脆手动拷贝测试代码,也不多。然后依赖安装包也手动安装。不过总得来说还是麻烦挺多的。而且登陆git也经常失败。最主要的是我不知道为什么没有成功同步项目文件。只能重新拷贝。种种致命打击,我最后屈服于选择宝塔面板……

1. 额外知识

  • 我无聊逛了一下宝塔面板中的面板设置。想找修改密码的选项(笔记我刚刚截图都给你们看到密码了)。意外发现还有一个域名设置。我抱着试一试的想法填写了我早上买的域名解析[1],发现居然就可以使用域名http://我买的域名解析:8888/登陆了。我改成其他的值就不可以。表示只能填写已经域名解析。现在我可以使用http://我买的域名解析:8880/打开我的网站了。
  • [1]解释:我还不懂怎么实际关联设置域名IP。看了科普视频是懂了概念:简单说网络1-计算机是如何通信的?IP地址与mac地址是什么?dhcp与arp又是什么?,但是实际操作:【域名如何使用?】域名注册,域名备案,域名解析,十分钟玩转域名!,却一脸懵逼:建站基本流程。
  • 在视频教程中,还有最后一步,使用方向代理,纯域名方式打开网页。进阶方式:纯IP/IP+端口 → 域名+端口 → 纯域名。显得更加高级了。

2.神器 - MobaXterm_Portable

2021.06.28,我正在学习linux,发现了一个免费免安装的强大工具:MobaXterm_Portable。极力推荐,要是早点发现我都可以不用宝塔面板了。该软件直接支持访问服务器的文件夹。

  • 相关教程:推荐使用集串口,SSH远程登录和FTP传输三合一工具MobaXterm!!!!!

这篇关于基于Node.js与WebSocket搭建服务器 笔记 - 00 - 初建云服务器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/363423

相关文章

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv