阿里云ECS服务器部署Node.js项目,手把手教学
前言:
写了小程序,最开始是用的自己电脑做的服务器,代码 nodejs ;
小程序发布上线后,觉得用自己的电脑做服务器不爽,于是便开始捣鼓阿里的服务器搭建,域名申请和 SSL 证书;
下面便开始我的捣鼓之旅;
说明一下:
nodejs 代码和小程序已经完成,只差一个线上服务器。
第一步:购买服务器
首先献出阿里云的ecs服务器购买链接ECS服务器
穷人嘛,就选最便宜的。一年也才一百块钱,对于练手的小项目是足够了。
![](https://img.haomeiwen.com/i11575670/1083ae1b317af241.png)
镜像就选择 :CentOS 7.6 64位(安全加固)
稳定可靠,然后就是付钱,购买成功后进控制台,找到云服务器ECS,进去后就能看见刚刚购买的服务器了
![](https://img.haomeiwen.com/i11575670/b52a6a4747537383.png)
第二步:配置服务器
下面我们将会把我们本地的nodejs代码上传到服务器,并且在阿里云上跑起来;
这里就要用到几个工具了,本人电脑 windows,
推荐工具 putty 和 8uftp ,这个网上一搜就能出来,下载好这两个软件,等会儿要用。
putty是用来在本地运行线上服务器命令,8uftp是上传和同步本地文件到线上服务器的。
进入阿里云ECS服务器实例,点击更多,修改密码,这个密码就是用来登录服务器的密码,用户名是默认的 root 或者 administrator
由于我们选择是 Linux ,所以用户名是 root
![](https://img.haomeiwen.com/i11575670/133c649986a8b0f6.png)
![](https://img.haomeiwen.com/i11575670/d3858d45d711e6e1.png)
然后继续,配置网络安全组;
![](https://img.haomeiwen.com/i11575670/d633b776a6cc368d.png)
![](https://img.haomeiwen.com/i11575670/437e260d629d9d27.png)
![](https://img.haomeiwen.com/i11575670/939e5180fe37cd47.png)
把端口号 22、80、443 都勾上
![](https://img.haomeiwen.com/i11575670/18334079e5edb5d5.png)
然后再手动添加一个 21 的端口,因为我们用的 8uftp 默认是21的端口
![](https://img.haomeiwen.com/i11575670/74f5ed0bb2c187c7.png)
配置好以后,就可以尝试连接一下服务器了。
打开刚刚下好的 putty 文件夹,运行 putty.exe
![](https://img.haomeiwen.com/i11575670/6754b3e3ae954f9a.png)
这里输入公网 ip ,也就是红色的部分,端口号 22 ,SSH 默认的端口号,第一次链接会有个提示,不用管。
![](https://img.haomeiwen.com/i11575670/2eaf067437049d96.png)
![](https://img.haomeiwen.com/i11575670/b52a6a4747537383.png)
输入账号和密码,账号是 root ,密码是你刚才设置的密码。
![](https://img.haomeiwen.com/i11575670/d7ef732ba49dbaaf.png)
登录成功以后就是这样了,如果没有成功,请向上检查某个步骤是否错误。
![](https://img.haomeiwen.com/i11575670/543da5429ef616b6.png)
下面就需要在服务器上搭建一个 FTP 的服务,以便我们用 8uftp 连接服务器。
首选推荐使用 vsftpd ,输入命令
yum -y install vsftpd
直至出现 Complete! ,完成安装,这样线上的 FTP 服务器就算安装完成了。
启动软件
service vsftpd start
[root@encounter ~]# service vsftpd start
Redirecting to /bin/systemctl start vsftpd.service
[root@encounter ~]#
然后就是需要用 8uftp 连接服务器了。
点击站点管理器,选择新建站点,主机名就是阿里线上的公网 ip 地址,端口默认 21 ,然后是账号和密码,都是刚才的,账号 root
密码是你登录服务器的密码,然后高级中设置一下模式为活动模式。然后保存,连接
![](https://img.haomeiwen.com/i11575670/1c4154ad96cd3a1c.png)
![](https://img.haomeiwen.com/i11575670/a9d72691b3aeb0c4.png)
![](https://img.haomeiwen.com/i11575670/f4724f63cfac1ab3.png)
连接上服务器后,就能看到服务器上的文件了,左边是本地的文件,右边是服务器上的文件。
现在把我已经写好的 nodejs 代码上传到服务器,拖过去就完事了。
![](https://img.haomeiwen.com/i11575670/dbbe7969bd51e77c.png)
代码是上传上去了,下一步就需要把代码在服务器运行起来,配置 node 运行环境。
先安装 yarn
curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum install yarn
安装 pm2
yarn global add pm2
然后将 pm2 配置在 PATH 环境中,用 8uftp 进入根目录,然后打开 etc/profile 文件
![](https://img.haomeiwen.com/i11575670/adb8447a7cb11516.png)
修改文件,添加代码,注意自己 pm2 文件所在的位置哈。。。。。然后保存
PATH=$PATH:/root/nodejs/node_modules/pm2/bin
![](https://img.haomeiwen.com/i11575670/65369054b018b5b0.png)
配置完成以后,就可以开始尝试启动服务器了,在 putty 中输入
pm2 start app.js
![](https://img.haomeiwen.com/i11575670/d631ad26f4c5310e.png)
启动好服务器后,使用 postman 尝试请求一下我们的服务器,地址填写公网的 ip 和自己服务的端口号。
![](https://img.haomeiwen.com/i11575670/24505212d8238735.png)
至此,阿里云ECS服务器就算配置完成了。
当然,小程序可不支持 ip 地址的调用,还得去整个域名和 SSL 证书。
第三步:购买域名
域名不多说了,买就是了,我就买了个便宜的 .top 域名,然后需要等一会儿,可能会审核域名。
审核完成后,点击解析域名,添加两条记录,记录值填写公网的 ip 地址
![](https://img.haomeiwen.com/i11575670/785e7bd7091d2534.png)
然后等几分钟,域名解析需要时间,然后用 postman 测试一下,看域名解析生效了没
![](https://img.haomeiwen.com/i11575670/c5f6ca36ef89538c.png)
域名这块就算完成了,但是小程序是需要 https 的请求,整证书去。
第四步:申请 SSL 证书
去申请一个 SSL 证书,阿里云有免费的,走起
全局搜索 SSL ,选择 SSL 证书。
![](https://img.haomeiwen.com/i11575670/0b53c87f7e598713.png)
点击购买证书
![](https://img.haomeiwen.com/i11575670/2fedf3fdc38e3de4.png)
![](https://img.haomeiwen.com/i11575670/beb03fef80b7dd93.png)
购买后需要有一个域名的解析,点击证书申请,将提示页面的数据,手动在我们刚刚申请的域名中手动添加一条记录
![](https://img.haomeiwen.com/i11575670/f7ce4723c89b1b37.png)
然后等几分钟,证书就发下来了,然后点击下载证书,由于我的服务代码是 nodejs 版本,所以就选择的是 nginx 版本的证书,下载后有两个文件。
然后将这两个文件用 8uftp 上传到服务器中,修改 app.js 的代码,将证书路径添加进去。
fs.readFileSync("./certificate/4325616_encounter-k.top.key")
fs.readFileSync("./certificate/4325616_encounter-k.top.pem")
![](https://img.haomeiwen.com/i11575670/a8ff6ebf789d3073.png)
重启服务器,然后用 postman 测试一下
![](https://img.haomeiwen.com/i11575670/b59f092f61be8743.png)
大结局
算是弄完了,码字不易,点赞转发,谢谢支持