大致步骤(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 的操作):

  1. const express = require('express')

  2. const path = require('path')

  3. const app = express()

  4. app.use(express.static(path.join(__dirname, 'public')))

  5. app.listen(3389, () => {

  6. console.log(`App listening at port 3389`)

  7. })

5、 新建一个存放 html 项目的文件夹 public,并且创建一个 html 文件

mkdir public

cd public

touch index.html

输入如下测试代码:

  1. <!doctype html>

  2. <html lang="en">

  3. <head>

  4. <meta charset="UTF-8">

  5. <title>Web管理平台</title>

  6. </head>

  7. <body>

  8. <h1>Web管理平台</h1>

  9. </body>

  10. </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项目相关推荐

  1. 开发笔记13 | 部署 Node.js 应用程序到云 ECS

    <<系列文章集 前言 在之前的一篇文章中,我们介绍了 如何将一个本地的 Java 应用程序直接部署到阿里云 ECS ,有不少读者反馈,在本文中,我们来介绍如何部署 Node.js 应用程序 ...

  2. 通过阿里云ECS服务器部署FRP实现Windows自带远程桌面

    由于TeamViewer的高额使用费及其安全问题,萌生了自己搭建FRP实现Windows远程桌面的想法,网上找了一圈基本没有全面且安全落地的,大部分都是面向技术达人的,对于新手的我来说走了不少弯路,在 ...

  3. 阿里云ECS服务器购买及配置,SpringBoot项目部署到阿里云ECS服务器,阿里云ECS服务器安装JDK、Mysql、nginx详细步骤

    1.购买阿里云ECS服务器 官网:阿里云-上云就上阿里云 根据自己的需要选择相应的配置: 目前有一个月的服务器免费体验时间,我选择了免费体验,点击后,可以看到你刚才购买的服务器: 也可以通过这里查看你 ...

  4. 阿里云域名解析网络和服务架构设计(四) 之阿里云ECS服务器Nginx代理实践

    一.回顾 阿里云域名解析网络和服务架构设计总概览(一)_飞鸽FlyGo的博客-CSDN博客云解析DNS.负载均衡SLB.阿里云ECS服务器.阿里云ECS服务器Nginx代理https://flygo. ...

  5. Jenkins打包部署gitee项目至阿里云ECS服务器

    原文地址:Jenkins打包部署gitee项目至阿里云ECS服务器 - BIGTREE (whwtree.com) 所需插件: Git Parameter Plug-In插件 Publish Over ...

  6. 开发笔记7 | 部署 Go 应用程序到阿里云 ECS

    前言 在上一篇文章中,我们介绍了<部署 Java 应用程序到阿里云 ECS>,在本文中,我们来介绍 部署 Go 应用程序到阿里云 ECS. 本地开发 无论是编写云端运行的,还是编写本地运行 ...

  7. 阿里云centos mysql_阿里云ECS服务器CentOS7上安装MySql服务-阿里云开发者社区

    阿里云ECS服务器CentOS7上安装MySql服务 ---------------------------------------------- 使用root登录 1.确保服务器系统处于最新状态 [ ...

  8. 阿里云ECS服务器部署HADOOP集群(三):ZooKeeper 完全分布式集群搭建

    本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里 ...

  9. 在阿里云ECS服务器上搭建FTP服务

    在阿里云ECS服务器上搭建FTP服务 一.简介 二.环境简介 三.搭建FTP服务器步骤 1.配置ECS服务器的安全组策略 2.服务器安装vsftpd软件 3.修改配置文件 4.启动FTP服务 5.Wi ...

最新文章

  1. Python xrange与range的区别
  2. 【JavaScript 学习笔记】创建对象
  3. 获取局域网内服务器信息,使用Java代码获取服务器性能信息及局域网内主机名.pdf...
  4. 算法训练 猴子分苹果c语言,算法训练 猴子分苹果
  5. PHP获取字符串中的某个字符:采用数组的方式
  6. Java tate只要年月日,Java初學者入門必須掌握的30個基本概念
  7. Mac连接路由器后没有反应_无线WiFi无法连接到网络怎么办【解决方法】
  8. 新疆大学(新大)OJ xju 1010: 四个年级 C++ STL map 将4层循环优化成2层循环可解
  9. 数码管和573锁存器的细节问题
  10. pku2503 Babelfish
  11. C++primer第九章 顺序容器 9.3 顺序容器操作
  12. javascript基础系列:字符串的常用方法
  13. 计算机网络路由器方面的论文,简析计算机网络问题中路由器故障的论文
  14. sql between包括两端吗_技术分享:T-SQL 之语法艺术(一)
  15. Ubuntu sublime text 3无法输入中文的解决办法
  16. Java + selenium 元素定位(3)之By TagName
  17. verdi中波形怎么看间距_热血传奇:怎么看传奇中的“首充”?
  18. 【iOS源码】懒人笔记应用源码
  19. 创建三维零件的DH坐标系
  20. 图像篡改被动检测技术一览:基于特征提取和卷积神经网络的篡改检测

热门文章

  1. busybox的实现原理分析(C语言实现简易版的busybox)
  2. busybox的init
  3. 2019年中兴秋招在线笔试题目
  4. FLUENT操作--VOF模型局部初始化的TUI命令
  5. redis下载(windows版)
  6. tftp 在嵌入式设备和主机之间传输文件
  7. 严格别名规则“-fstrict-aliasing”和“-fno-strict-aliasing”及类型双关
  8. python读取图片的格式_python读取图片并修改格式与大小的方法
  9. c语言CFile的使用方法,mfc文件操作CFile类之创建文件的方法
  10. 经典网络架构学习-Transformer