从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问

时间:2024-04-13 21:32:50
大致步骤(2017.07.25):
1、购买阿里云服务器
2、在云服务器上搭建node环境
3、上传Node.js代码,并测试通过

一、购买阿里云服务器
1、登陆阿里云
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
2、选择控制台
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
3、选择云服务器ECS -> 实例 -> 创建实例
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
4、选择所需要的服务
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
(截图只是部分服务选择)
Tips:
(1)、网络服务选项
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
公网IP地址可以选择分配和不分配,两者的区别在于
选择分配IP:则此IP不能与ECS实例解绑,优点是不需要再独立申请公网IP(申请IP是要花费流量费用以及配置费用的)
选择不分配IP:则需要自己另行申请公网IP,优点是拥有一个独立的弹性公网IP(选择按流量付费其实费用也还能接受),假如你有多个ECS服务器,则可以弹性的将IP绑定在不同的ECS上,你就可以只通过一个IP访问不同的后台服务器 -- ps: 我是这样理解的,理解错误还望指出
安全组选项可以选择默认的安全组选项(安全组选项中涉及之后公网访问的端口,文后会提)
(2)、实例服务选项
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
系列III实例比较便宜,适合个人开发者
(3)、公网带宽服务选项
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
其中选择按使用流量后,费用清单中的 配置费用:¥ 0.79 / 时 , 我问过阿里云的客服,意思是一天 24 小时,每小时计费并收取 0.79 元
(4)、镜像服务选项(如图)
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
(5)、用户数据(并不明白,所以选择默认的)和安全设置服务选项
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
安全设置选择设置密码,牢记用户名为root,然后设置密码,该密码是用于登陆ECS服务器的,(连接以及登陆后文会提到)
5、立即购买,购买完成之后,如果选择了不分配IP服务,则需要继续申请弹性公网IP
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
(1)选择申请弹性公网IP
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
(2)选择需要的服务(截图是笔者的选择)
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
注意地域选项,选择跟你的ECS服务器相同的地域即可
(3)购买之后,回到IP管理控制台,将该弹性IP绑定到ECS实例
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
我的IP已经绑定过了,所以显示的是灰色的,点击绑定之后会弹框让你选择需要绑定的ECS实例,选择绑定即可,然后状态会变成已分配状态
6、至此,购买云服务已经完成

二、在云服务器上搭建Node服务器
1、登陆ECS服务器(有两种方式,一是直接在网页中操作,二是在客户端中操作,其中MAC自带ssh客户端,Window需要使用Putty客户端,连接帮助可在:云服务器ECS -> 实例 -> 管理 -> 基本信息 -> 更多 -> 连接帮助 中查看)
(1) 网页登陆ECS服务器
首次登陆的时候,会弹出连接密码,记住该连接密码,以后每次连接都需要输入该连接密码
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
再次登陆的时候,弹框如下,输入连接密码,通过之后,便登陆了ECS服务器
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
输入连接密码成功之后:输入用户名:root 密码:购买ECS服务器时设置的密码
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
登陆成功
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
(2)ssh客户端登陆ECS服务器(笔者电脑为MAC,所以以MAC中的操作为例,Windows中应该大同小异)
终端 -> shell -> 新建远程连接 -> 安全Shell(ssh) ,点击右侧下方 + 号 添加新的远程连接,输入 申请的弹性公网IP,
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
用户名填写: root,然后点击连接,同样要输入 登录密码(购买ECS服务器时填写的密码),登陆成功
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问

2、开始配置环境(严格遵循以下文章中的“开始配置环境”之后的配置教程)
==============请打开查看教程================
========================================
Tips:
(1)此处我们选择的操作系统是CentOS,所以文章中作者遇到的坑可以忽略
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
(2)在以下两个步骤,执行时间会较长
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问

从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
(3)文章中作者提到的上传代码部分,非常简略,可以忽略
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问

三、上传Node.js代码,并测试通过
1、代码存储路径为 /home 文件夹下, 进入该文件夹
cd /home
Tips: 查看服务器中的文件夹目录架构,使用 ls -a 命令,
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
此处并没有观察到所谓的 /home 目录,因为这并不是服务器的根目录,需要:
cd .. #返回上一级
ls -a #查看全部
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问

2、使用你能想到的一切手段,将你的Node项目文件拷贝到 /home 目录下
笔者使用的是git,将git仓库中的Node项目文件clone到了 /home 目录下
大概流程是:
(1)、新建一个文件夹(Node项目文件夹)-> 新建一个 Node.js 文件 index.js,配置一些基本信息(本地git客户端)
从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
其中最重要一点,就是红圈中的监听端口,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服务器