如何把Node项目部署到服务器上

news2024/12/26 23:49:20

1. 如何合理选购一台服务器

对于服务器的选择,我们主要有以下几种选择:

1. 阿里云;

2. 腾讯云;

3. 华为云;

4. 亚马逊云;

国内用户如果没有特殊需求可以选择前三种,这里我阿里云举例,当然其他服务器的配置都是相通的。

1.1. 服务器位置的选择;

我们都知道服务器的不同配置都是有讲究的,并且一定程度上关系到我们网站的用户体验,在选择服务器地址之前,我们需要清楚的知道自己网站的用户群体主要集中在哪个区域:

比如我的用户在杭州,我们在地域及可用区选项中可以选择华东1(杭州),以此类推。

1.2. 服务器镜像的选择;

目前我们常用的服务器镜像有:

1. centos;

2. windows Server;

3. Ubuntu;

根据自己的使用习惯选择即可,我一般习惯选择 centos, 接下来也会以 centos 来介绍相关的配置。

1.3. 服务器系统盘存储的选择;

系统存储的选择也需要结合自身网站, 如果网站是内容很多的资源型网站(图片, 视频等),可以选择稍微大一点的,比如 100G 以上,一般个人网站或者测试站50G足已,毕竟一份存储一份钱。

1.4. 服务器带宽选择;

一般为了给用户一个好的网站体验,会提高带宽来降低网站加载时间。但是一味的提高带宽会大大加大服务器的费用,所以我们一方面需要在对网站自身做好优化,另一方面也可以使用对象存储,这样我们就能控制一定的带宽了,比如目前 H5-Dooring 的带宽在10M左右,一年服务器费用大概 1-2W, 但是对一些测试型个人网站来说,选择2-5M都是一个合适的范围。

当然大家也可以选择按流量付费。

1.5. 服务器规格选择;

 如果你是个人使用对吞吐性能没有过多要求,可以选择1核1G低配版的,不过建议个人网站最好选择1核2G或者2核4G的,说不定你的网站就突然火了。

至于服务器的其他配置,大家都可以随意选择,也可以直接用默认的。

2. 如何将域名解析到服务器上

当我们选购好一台服务器之后,我们在控制台可以看到自己服务器的公网IP,这也是域名解析的关键。域名可以在云服务平台内直接购买,一般一个域名在20-60¥之间,推荐使用 .com .cn的域名,当前其他后缀的域名也可以,取决于你对网站的定位。

我们只需要在云服务的域名管理中添加需要解析的服务器记录即可。

上图的主机记录配置中常用的有 www 和 @,我们选择任何一个即可,主机记录相当于域名的前缀。

记录值 就是我们服务器的IP,也就是上面提到的公网IP。我们配置好之后点确认,等待5-10分钟即可解析完成, 不过一般都在3分钟内。

通过以上方式,我们的域名就成功解析到对应的服务器上了,是不是很简单? 前提是域名必须备案,至于如何备案,也很简单,可以按照云厂商指引进行操作。

3. 服务器配套软件的安装和环境配置

有了上面服务器的配置基础,我们开始配置服务器了。 作为一名前端程序员, 服务器上必须要有node。接下来我们开始安装,在安装之前,我们需要先进入服务器终端:

密钥对一般在服务器列表的右侧更多下拉项里,我们一般第一次使用需要重置密钥对, 在设置好密钥对之后, 我们在自己计算机的终端输入如下命令:

ssh root@你的服务器公网IP

 之后在终端输入完密码之后即可进入服务器。

如果服务器没有wget,建议大家可以安装一下,毕竟后面很多场景都会用到。

yum install wget

是不是神似我们的 npm,之后我们就可以开心的安装node了。

# 安装nodejs
wget https://nodejs.org/dist/v14.15.4/node-v14.15.4-linux-x64.tar.xz

# 解压
tar xf  node-v14.15.4-linux-x64.tar.xz 

解压完成之后我们可以手动进入node的 bin 目录,测测node是否可用。但是下载下来的node的目录名又臭又长,怎么办呢?  这里就要学好Linux了, 我这里给大家介绍一种简单的重命名文件/目录名的方法:

mv node-v14.15.4-linux-x64 nodejs

mvlinux移动文件的命令,当然如果在同一个目录下,它也可以做重命名功能使用。

最后一步就是配置node全局环境了,这里我们也是使用 linux 的命令ln。

ln -s /...你nodejs所在的更目录/nodejs/bin/node  /usr/local/bin/node

ln -s /...你nodejs所在的更目录/nodejs/bin/npm   /usr/local/bin/npm

这样我们通过软连接就实现在全局环境下使用node了。

4. 通过命令行上传自己的网站到服务器

那么环境有了之后我们就可以直接上传我们的网站代码了,因为我们选择的是 centos 服务器,它没有可视化的界面来操作,而且我的电脑是 mac的, 这可咋整呢? 不用担心,继续用命令行。

我们可以使用命令行从本地上传文件或文件夹到服务器, 也可以从服务器下载文件到本地电脑,这些操作无疑多亏了scp,接下来我将演示如何从本地上传文件夹到服务器。

scp -r 本地文件夹路径 root@你的公网IP:/上传到的服务器路径

# 如

scp -r ./dist root@xxx.xxx.xxx:/website/

其中-r是用来传文件夹用的,如果你要上传的文件包含文件夹, 可以添加这个标识。

5. 网站部署和运维

网站可以用nginx代理和做负载均衡,网上也有很多资料介绍, 这里我带大家介绍一下PM2

PM2 是一个守护进程管理器,它将帮助我们管理和保障应用程序稳定在线。如果你是node的忠实粉丝,那么它将是个不错的选择。作为前端工程师,搭建全栈的网站用node也是一个非常高效的选择。

5.1. 安装应用

最新的 PM2 版本可以使用 NPM 或 Yarn 安装:

$ npm install pm2@latest -g
# or
$ yarn global add pm2

5.2. 启动应用

启动、守护和监控应用程序的最简单方法是使用以下命令行:

$ pm2 start app.js

或轻松启动任何其他应用程序:

$ pm2 start bashscript.sh

$ pm2 start python-app.py --watch

$ pm2 start binary-file -- --port 1520

我们可以传递给 CLI 的一些选项:

# Specify an app name
--name <app_name>

# Watch and Restart app when files change
--watch

# Set memory threshold for app reload
--max-memory-restart <200MB>

# Specify log file
--log <log_path>

# Pass extra arguments to the script
-- arg1 arg2 arg3

# Delay between automatic restarts
--restart-delay <delay in ms>

# Prefix logs with time
--time

# Do not auto restart app
--no-autorestart

# Specify cron for forced restart
--cron <cron_pattern>

# Attach to application log
--no-daemon

如我们所见,有许多选项可用于使用 PM2 管理我们的应用程序。目前H5-Dooring也是采用这种方式部署的,所以如果你有自己的网站, 赶紧参考这个教程部署吧。

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

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

相关文章

【Vue】vue-devtools调试工具安装和配置

1. 安装 vue-devtools 调试工具vue 官方提供的 vue-devtools 调试工具&#xff0c;能够方便开发者对 vue 项目进行调试与开发。Chrome 浏览器在线安装 vue-devtools &#xff1a;https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpdFi…

RPA自动办公02——Uibot界面元素选择

继续RPA-Uibot的简单使用&#xff0c;本次带来RPA自动点击网页。 当然官方教程更加详细&#xff1a;界面元素自动化_UiBot开发者指南 按照书上的教程&#xff0c;点击一个表格&#xff0c;在右边拖拽命令&#xff0c;然后选择元素就可以了&#xff1a; 这个表格在官方文档上有…

为什么要开发SpringBoot?

Spring配置繁琐 虽然Spring的组件代码是轻量级的&#xff0c;但它的配置却是重量级的。一开始&#xff0c;Spring用XML配置&#xff0c;而且是很多 XML配置。Spring 2.5引入了基于注解的组件扫描&#xff0c;这消除了大量针对应用程序自身组件的显式XML配置。Spring 3.0引入了基…

计算机图形学 第4章 多边形填充

目录前驱知识多边形的扫描转换有效边表填充算法原理边界像素处理原则怎么算交点有效边桶表与边表桶表表示法边缘填充算法填充过程在这里插入图片描述区域填充算法/种子填充算法种子填充算法扫描线种子填充算法 &#xff08;更有效&#xff09;前驱知识 了解扫描转换的基本概念…

九龙证券|兔年行情将打响,A股2月上涨概率最高

兔年行情行将正式打响&#xff0c;迎接投资者的会否是 “兔”飞猛进的行情呢&#xff1f;证券时报数据宝带您一起透视兔年股票上涨概率。 A股新年后上扬概率高 从近10年A股新年后的市场体现来看&#xff0c;头几个买卖日大概率上涨。 数据宝统计&#xff0c;曩昔10年&#xf…

国内在线图表工具,你能说出几个?

之前写过很多篇在线图表、数据分析处理类工具的内容&#xff0c;但都是针对单个问题写的&#xff0c;没有将其整合起来&#xff0c;今天就借着这个问题&#xff0c;做个国内在线图表工具的合集。 一共5大类&#xff0c;每一类各介绍一个代表性工具&#xff0c;全文较长&#x…

【c语言进阶】文件操作知识大全上

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;> c语言学习 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是…

15. XML解析

1. 什么是 XML&#xff1f; XML 指可扩展标记语言&#xff08;EXtensible Markup Language&#xff09;。 a. XML 是一种很像HTML的标记语言。 b. XML 的设计宗旨是传输数据&#xff0c;而不是显示数据。 c. XML 标签没有被预定义。您需要自行定义标签。 d. XML 被设计为具有自…

Tomcat详解

Tomcat 是一个 HTTP 服务器. 前面我们已经学习了 HTTP 协议, 知道了 HTTP 协议就是 HTTP 客户端和 HTTP 服务器之间的交互数据的格式. 同时也通过 ajax 和 Java Socket 分别构造了 HTTP 客户端. HTTP 服务器我们也同样可以通过 Java Socket 来实现. 而 Tomcat 就是基于 Java 实…

星戈瑞--磺化CY7标记活性脂Sulfo CY7-NHS注意事项你知道那些?

Sulfo-Cy7 NHS酯是一种磺化、亲水性和高度水溶性染料。该试剂允许制备Cy7标记的生物分子&#xff0c;特别适用于标记脆弱的蛋白质和易变性的蛋白质。染料标记的分子可用于各种研究相关的实验。近红外荧光成像利用了生物组织在特定波长范围内的透明度。在活生物体中&#xff0c;…

2. Kimball的DW/BI架构解析

文章目录Kimball的DW/BI架构1. 业务系统&#xff08;数据源系统&#xff09;2. 获取-转换-加载&#xff08;ETL&#xff09;系统3. 用于支持BI&#xff08;商业智能&#xff09;决策的展现区4. 商业智能应用引言&#xff1a;DW&#xff0c;即Data Warehouse&#xff0c;数据仓库…

LLA: Loss-aware Label Assignment for Dense Pedestrian Detection 原理与代码解析

paper&#xff1a;LLA: Loss-aware Label Assignment for Dense Pedestrian Detectioncode&#xff1a;https://github.com/Megvii-BaseDetection/LLA背景标签分配由于对检测器的性能影响很大&#xff0c;在通用目标检测中得到了广泛的研究&#xff0c;但是密集行人检测中的标签…

【SpringCloud复习巩固】Gateway

目录 一.统一网关Gateway 1.1为什么需要网关 1.2网关的技术实现 1.3网关的作用 1.4搭建网关服务 1.5路由断言工厂Route Predicate Factory 1.6路由过滤器GatewayFilter 1.7全局过滤器GlobalFilter 1.8过滤器执行顺序 1.9跨域问题解决 一.统一网关Gateway 1.1为什么需…

《流浪地球2》里的硬核科技,IT人带入了

《流浪地球2》不负期待&#xff0c;上映后口碑和热度一路高歌猛进&#xff0c;霸坐春节档&#xff0c;稳居票房TOP2。硬核科技惊喜不断&#xff0c;如喷出冲天蓝光的行星发动机、洞悉一切的量子计算机、高耸入云的太空电梯…… 逼真的特效质感以及浓厚的重工业美学掀起科技新热…

UE4中修改模型的中心点

UE4系列文章目录 文章目录UE4系列文章目录前言一、增加scenen空组件前言 在UE4中的模型中心点一般都在模型的中点&#xff0c;如果是门这样的模型&#xff0c;我们就不能绕中心点旋转了&#xff0c;不然会觉得很奇怪。但是默认的静态网格体中心点都在物体中心&#xff0c;那我…

易观千帆 | 2022年12月银行APP月活跃用户规模盘点

易观千帆&#xff1a;12月手机银行服务应用活跃人数51688.69万&#xff0c;环比下降1.81%。结合历史数据&#xff0c;2022年9月达到全年高峰的54191.75万&#xff0c;总体来看保持波动增长。12月农商行手机银行服务应用活跃人数1580.59万&#xff0c;环比下降3.01%。农商行手机…

scrapy的概念作用和工作流程

scrapy的概念和流程 学习目标&#xff1a; 了解 scrapy的概念了解 scrapy框架的作用掌握 scrapy框架的运行流程掌握 scrapy中每个模块的作用 1. scrapy的概念 Scrapy是一个Python编写的开源网络爬虫框架。它是一个被设计用于爬取网络数据、提取结构性数据的框架。 Scrapy 使…

K8s简介之什么是K8s

1.概述 欢迎来到K8s入门课程。Kubernetes&#xff0c;也被称为K8s或Kube&#xff0c;是谷歌推出的业界最受欢迎的容器编排器。本K8s教程由一系列关于K8s的文章组成。在第一部分&#xff0c;我们将讨论什么是K8s和K8s的基本概念。 本课程是专为初学者开设的&#xff0c;你可以…

Java个人遇到问题汇总

问题汇总1. 虚拟机1.1 CentOS71) 连不上网络问题解决1.2 Docker1) 私服配置无法重启docker问题解决后续2. SSMP2.1 Spring1) 测试类一直空指针问题解决2.2 MyBatis MyBatis-Plus1) IDEA加入方言后SQL语句依然不提示解决2) MP更新数据,更新了其他列问题解决3.SpringBoot3.1 Thym…

nginx学习笔记8(小滴课堂)

nginx第三方利器---OpenRestyLua介绍 OpenRestyLua的相关环境准备 我们先来去安装我们的OpenResty: 我们按照官网的要求去配置就可以了&#xff1a; 按照官网的步骤一步一步去走就可以了。 然后我们开始去安装我们的OpenResty: 这里有非常多的安装包吧&#xff0c;我们到时候需…