从零开始部署Node.js服务至阿里云ECS服务器并通过express框架实现外网IP访问html项目
2021/11/11 12:39:46
本文主要是介绍从零开始部署Node.js服务至阿里云ECS服务器并通过express框架实现外网IP访问html项目,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
大致步骤(2017.07.25):
1、购买阿里云服务器
2、在云服务器上搭建node环境
3、上传Node.js代码,并测试通过
一、购买阿里云服务器
1、登陆阿里云
2、选择控制台
3、选择云服务器ECS -> 实例 -> 创建实例
4、选择所需要的服务
(截图只是部分服务选择)
Tips:
(1)、网络服务选项
公网IP地址可以选择分配和不分配,两者的区别在于
选择分配IP:则此IP不能与ECS实例解绑,优点是不需要再独立申请公网IP(申请IP是要花费流量费用以及配置费用的)
选择不分配IP:则需要自己另行申请公网IP,优点是拥有一个独立的弹性公网IP(选择按流量付费其实费用也还能接受),假如你有多个ECS服务器,则可以弹性的将IP绑定在不同的ECS上,你就可以只通过一个IP访问不同的后台服务器 -- ps: 我是这样理解的,理解错误还望指出
建议花两分钟了解一下弹性公网IP:什么是弹性公网IP - 弹性公网 IP - 阿里云
安全组选项可以选择默认的安全组选项(安全组选项中涉及之后公网访问的端口,文后会提)
(2)、实例服务选项
系列III实例比较便宜,适合个人开发者
(3)、公网带宽服务选项
其中选择按使用流量后,费用清单中的 配置费用:¥ 0.79 / 时 , 我问过阿里云的客服,意思是一天 24 小时,每小时计费并收取 0.79 元
(4)、镜像服务选项(如图)
(5)、用户数据(并不明白,所以选择默认的)和安全设置服务选项
安全设置选择设置密码,牢记用户名为root,然后设置密码,该密码是用于登陆ECS服务器的,(连接以及登陆后文会提到)
5、立即购买,购买完成之后,如果选择了不分配IP服务,则需要继续申请弹性公网IP
(1)选择申请弹性公网IP
(2)选择需要的服务(截图是笔者的选择)
注意地域选项,选择跟你的ECS服务器相同的地域即可
(3)购买之后,回到IP管理控制台,将该弹性IP绑定到ECS实例
我的IP已经绑定过了,所以显示的是灰色的,点击绑定之后会弹框让你选择需要绑定的ECS实例,选择绑定即可,然后状态会变成已分配状态
6、至此,购买云服务已经完成
二、在云服务器上搭建Node服务器
1、登陆ECS服务器(有两种方式,一是直接在网页中操作,二是在客户端中操作,其中MAC自带ssh客户端,Window需要使用Putty客户端,连接帮助可在:云服务器ECS -> 实例 -> 管理 -> 基本信息 -> 更多 -> 连接帮助 中查看)
(1) 网页登陆ECS服务器
首次登陆的时候,会弹出连接密码,记住该连接密码,以后每次连接都需要输入该连接密码
再次登陆的时候,弹框如下,输入连接密码,通过之后,便登陆了ECS服务器
输入连接密码成功之后:输入用户名:root 密码:购买ECS服务器时设置的密码
登陆成功
(2)ssh客户端登陆ECS服务器(笔者电脑为MAC,所以以MAC中的操作为例,Windows中应该大同小异)
终端 -> shell -> 新建远程连接 -> 安全Shell(ssh) ,点击右侧下方 + 号 添加新的远程连接,输入 申请的弹性公网IP,
用户名填写: root,然后点击连接,同样要输入 登录密码(购买ECS服务器时填写的密码),登陆成功
2、开始配置环境(严格遵循以下文章中的“开始配置环境”之后的配置教程)
==============请打开查看教程================
部署Node.js环境(CentOS 7) - 云服务器 ECS - 阿里云
========================================
强烈建议使用 nvm 的方式安装node,因为如果使用第一种解压安装包安装的方式,可能会面临 npm 全局安装的模块不能使用的问题,提示找不到命令,况且使用 nvm 安装能很方便的切换 node 的版本
三、上传Node.js代码,并测试通过
1、代码存储路径为 /home 文件夹下, 进入该文件夹
cd /home
Tips: 查看服务器中的文件夹目录架构,使用 ls -a 命令,
此处并没有观察到所谓的 /home 目录,因为这并不是服务器的根目录,需要:
cd .. #返回上一级
ls -a #查看全部
2、使用你能想到的一切手段,将你的Node项目文件拷贝到 /home 目录下
笔者使用的是git,将git仓库中的Node项目文件clone到了 /home 目录下
大概流程是:
(1)、新建一个文件夹(Node项目文件夹)-> 新建一个 Node.js 文件 index.js,配置一些基本信息(本地git客户端)
其中最重要一点,就是红圈中的监听端口,3389 是阿里云默认放出的监听端口,这个监听端口是在购买ECS服务的以后,选择默认的安全组之后安全规则设定的,很多配置完之后,不能公网IP访问服务器(503 error)的原因就出在这里。(安全组查看:云服务器ECS -> 实例 -> 更多 -> 安全组配置)
(2)、git init 文件夹,并将该工程上传到 git 服务器(本地git客户端)
(3)、clone你的项目文件到 /home 目录下(远程ssh客户端)
首先进入 /home 目录,
cd /home
然后clone你的git项目
git clone https://github.com/YourGitAccount/tempGitProject.git //你的repo地址
(4)、然后进入tempGitProject文件夹(远程ssh客户端),安装pm2启动Node服务(pm2能保证Node服务永远在线,而不会因为关闭ssh客户端之后Node服务就停止了)
npm install -g pm2
安装完成后
pm2 start index.js --name uops
3、测试后台是否连通公网IP
(1)、在浏览器中打开: IP:3389 (例如:192.168.0.1:3389),查看是否返回字符串 "{userName: 'helloWorld'}"
4、修改Node项目文件
(1)、在ssh客户端中pull一下代码,然后运行
pm2 start index.js --name uops -f
即可,不需要重启ECS服务器
四、搭建express框架访问 HTML 页面
1、新建一个存放 npm 项目的文件夹 npmProFile
mkdir npmProFile
2、进入该创建的文件夹,新建一个 npm 项目
cd npmProFile
npm init
一路确定即可
3、安装 express 框架
npm install express --save
此时该 npmProFile 文件夹里面就是一个 npm 项目,包含一个 package.json 文件和一个 node-module 文件夹
4、新建一个 server.js 文件用于启动 node 服务
touch server.js
vim server.js
将如下代码输入,并保存(需要懂得 vim 的操作):
-
const express = require('express')
-
const path = require('path')
-
const app = express()
-
app.use(express.static(path.join(__dirname, 'public')))
-
app.listen(3389, () => {
-
console.log(`App listening at port 3389`)
-
})
5、 新建一个存放 html 项目的文件夹 public,并且创建一个 html 文件
mkdir public
cd public
touch index.html
输入如下测试代码:
-
<!doctype html>
-
<html lang="en">
-
<head>
-
<meta charset="UTF-8">
-
<title>Web管理平台</title>
-
</head>
-
<body>
-
<h1>Web管理平台</h1>
-
</body>
-
</html>
6、返回上一级,启动 node 服务
node server.js
7、访问页面即可
在浏览器中打开: IP:3389 (例如:192.168.0.1:3389),查看html效果
云服务器搭载业务,选择合适的平台最重要!
从目前国内云计算市场的格局来看,国内云计算前三强分别是阿里云、腾讯云和华为云,阿里云、腾讯云作为背靠互联网平台的企业,更偏向于B端用户;华为与作为传统的通信巨头,更偏向于G端。
当然如何选择服务器机型,这里有篇文档汇总的比较详细,文档地址:
云服务器哪家好!2021年阿里云、腾讯云、华为云的服务器配置及价格对比?
如果是高并发,高IO业务场景,需要确定服务器规格,可让业务应用性能发挥到最佳,参考官方文档:
阿里云服务器规格:规格实例族 - 云服务器 ECS
腾讯云服务器规格:规格实例族 - 云服务器CVM
这篇关于从零开始部署Node.js服务至阿里云ECS服务器并通过express框架实现外网IP访问html项目的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16Vue3资料:新手入门必读教程
- 2024-11-16Vue3资料:新手入门全面指南
- 2024-11-16Vue资料:新手入门完全指南
- 2024-11-16Vue项目实战:新手入门指南
- 2024-11-16React Hooks之useEffect案例详解
- 2024-11-16useRef案例详解:React中的useRef使用教程
- 2024-11-16React Hooks之useState案例详解
- 2024-11-16Vue入门指南:从零开始搭建第一个Vue项目
- 2024-11-16Vue3学习:新手入门教程与实践指南
- 2024-11-16Vue3学习:从入门到初级实战教程