Mac系统部署Node.js至阿里云服务器并实现外网访问

转载https://www.jianshu.com/p/b5b6d062ba29

先记录一下整体的过程:

1、购买阿里云服务器,在ESC控制台创建实例

2、在ESC服务器上搭建node环境

3、上传node.js代码到ESC服务器,并用阿里云服务器公网IP访问

一、购买ESC服务器

1、登录阿里云,找到云服务器ESC,点击购买,在此学习阶段我选择了最低的配置,最短的时长

2、打开阿里云控制台,选择云服务器ESC-实例-创建实例

 

其中选择分配公网IP,无需再申请弹性公网IP,安全组规则可以使用默认配置,镜像服务选择CentOS版本最新的。

上图表示云服务器已经购买完成。

二、在阿里云服务器上搭建node环境

这里踩了许多的坑,但结果是美好的,多踩坑多学习。

1、首先连接阿里云服务器,Mac上可以使用终端操作,在终端中输入:

$ ssh [email protected]

 

提示“ Welcome to Alibaba Cloud Elastic Compute Service !”表示连接服务器成功。

2、此时的服务器是一张白纸,不存在node环境的,下面开始搭建node环境

① 使用源代码构建node.js,要进行软件的安装,需要先安装用来编译源代码的开发工具:

[root@iz8vbfrblr3s915qrmkrj8z ~]# yum -y groupinstall "Development Tools"

② 安装node.js,此时服务器默认处于root路径下,先执行

[root@iz8vbfrblr3s915qrmkrj8z ~]# cd ..

回到上层路径中,然后执行ls,列出当前路径下的文件与文件夹

 

③ 进入/usr/src文件夹,在这个文件夹中存放node源代码,使用wget命令下载node.js安装包,由于是Mac环境,所以下载node安装包的时候要注意选择适合mac的版本。

 

这里选择了最新的v9.9.0版本,下载好压缩包后,开始解压文件

[root@iz8vbfrblr3s915qrmkrj8z src]# tar -zxf node-v9.9.0.tar.gz 

现在在src目录下执行ls,看当前目录下有哪些文件

 

④ 进入解压后的文件夹

 

并执行配置脚本来进行预编译处理

⑤ 编译node.js源代码

[root@iz8vbfrblr3s915qrmkrj8z node-v9.9.0]# make

这一步需要很久,大概花了40分钟的样子才编译完成

⑥ 编译完成后,需要执行make install

⑦ 此时node.js已经安装完成,nodejs默认有npm,可以使用npm安装express 和 forever,全局安装

[root@iz8vbfrblr3s915qrmkrj8z node-v9.9.0]# npm -g install express forever

⑧ 创建软链接,可以全局使用node、npm命令,否则会报“命令未找到”

sudo ln -s /usr/local/bin/node /usr/bin/node 

sudo ln -s /usr/local/lib/node /usr/lib/node 

sudo ln -s /usr/local/bin/npm /usr/bin/npm

sudo ln -s /usr/local/bin/forever /usr/bin/forever

至此,node环境已经搭建完成。

?xml version="1.0" encoding="UTF-8"?

三、上传node.js代码到阿里云服务器

进入/home文件夹,把node代码放在此路径下

 

可以使用git拉取代码,此处只做演示,未拉取代码,后面完善

创建项目服务器文件:touch example.js

编辑example.js: vim example.js

(i,进入编辑模式,编辑完成按Esc键退出编辑,并输入:wq退出vim编辑器)

const http = require('http');

const hostname = '172.26.141.193';//私网IP

const port = 80;

const server = http.createServer((req, res) => {

    res.statusCode = 200;

    res.setHeader('Content-Type', 'text/plain');

    res.end('wo zheng ni ge xiao chou zhu wa zi 666.\n');

});

server.listen(port, hostname, ()=> {

    console.log(`Server running at http://${hostname}:${port}/`);

});

执行example.js(node example.js或者forever start example.js)

 

到此已经大功告成,可以在浏览器中输入公网IP+端口号,也可以是相应的域名

 

域名:由于没备案,备案又需要购买3个月及以上ESC服务,所以暂时无法打开,后续再购买体验一把

 

猜你喜欢

转载自www.cnblogs.com/boonook/p/11641689.html
今日推荐