背景:
1.我买的阿里云服务器是香港的CentOS 7.3(便宜)
2.已成功安装了nodejs
操作:
1.新建项目文件example.js
cd ~
touch example.js
2.编辑example.js文件
vi example.js
2.1.输入i,进入编辑模式,将下面代码(简单的nodejs创建服务代码)粘贴到文件中。使用Esc按钮,退出编辑模式,输入:wq,回车,保存文件内容并退出。
const http = require('http');
const hostname = '0.0.0.0';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World from aliyun');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
2.2.划重点:port=3000;这是我设置的端口号,这个端口号是随便设置的;后面还需要在阿里云管理后台中释放这个端口供公网访问。
3.运行项目:
3.1.直接运行,退出就关闭服务
node ~/example.js
3.2.当然也可以将项目置于后台运行(关闭是直接kill pid):
node ~/example.js &
关闭服务:
4.使用命令查看项目端口是否存在。
netstat -tpln 或者 netstat -nultp
5.坑
5.1.假如发现端口没有正常运行,则可能是端口没有放行,需要登录ECS管理控制台,在安全组中添加安全组规则放行端口(如本示例中为TCP 3000端口)
5.2.如果你的实例中开启了防火墙,必须添加端口的入站规则(如本示例中为TCP 3000端口)。
6.公网访问
6.1.随便在一台联网机器的浏览器中输入 http://实例公网ip:端口号
6.2.如果你绑定了域名,也可以在浏览器中输入 域名:端口号
7.当然所有人都会觉得要输入域名+端口号,真是太蠢了。所以我们要去掉端口号,直接通过域名就能访问;
由于阿里云默认的访问端口是80;所以上面代码中的const port = 3000
直接改成 const port = 80
就可以了。