大致步骤(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:https://help.aliyun.com/document_detail/32321.html?spm=5176.doc51995.6.549.nJh5iy
安全组选项可以选择默认的安全组选项(安全组选项中涉及之后公网访问的端口,文后会提)
(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、开始配置环境(严格遵循以下文章中的“开始配置环境”之后的配置教程)
==============请打开查看教程================
https://help.aliyun.com/document_detail/50775.html?spm=5176.11065259.1996646101.searchclickresult.73aa4729mcloGI
========================================
强烈建议使用 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
输入如下测试代码:
Web管理平台
Web管理平台
6、返回上一级,启动 node 服务
node server.js
7、访问页面即可
在浏览器中打开: IP:3389 (例如:192.168.0.1:3389),查看html效果