文章目录
背景
正常情况下,我们希望访问Linux服务器上的静态HTML资源页,是不可以直接访问到的,是需要通过部署服务来进行映射访问,本篇就来介绍一下部署服务的过程。
部署环境:CentOS 7.x
部署
1、安装NodeJS
首先,我们需要安装NodeJS,选择一个NodeJS的版本进行安装。
Node.js v10.x
curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -
Node.js v8.x
curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
Node.js v7.x
curl --silent --location https://rpm.nodesource.com/setup_7.x | bash -
yum安装
yum install -y nodejs
安装成功后,查看版本,确认安装完成:
node -v
结果:
[root@VM_0_2_centos nodejs]# node -v
v10.23.0
注意:我本机安装的nodeJS 6.x版本,在后面安装pm2会有问题,建议部署新版本的nodeJS。
2、初始化nodeJS
npm init
初始化过程中,会提示需要输入一些描述,按照实际情况输入即可。
3、在当前文件夹路径下创建脚本
创建一个JS的脚本,使用nodeJS进行执行,这里我们创建一个文件server.js
var http = require('http');
var fs = require('fs');
var server = http.createServer();
var handlerequest = function(request,respone){
var url = request.url;
if(url=='/'){
respone.writeHead(200,{'Content-Type':'text/html'});
var ns = fs.readFile('./index.html', function(err, data) {
if (err) {
console.error(err);
return;
}
respone.end(data);
});
}else if(url != '/'){
var surl = '.'+url;
var type = surl.substr(surl.lastIndexOf(".")+1,surl.length)
respone.writeHead(200,{'Content-type':"text/"+type});
var ns = fs.readFile(surl, function(err, data) {
if (err) {
console.error(err);
return;
}
respone.end(data);
});
}
}
server.on('request',handlerequest);
server.listen(8089,function(){
console.log("runing...");
})
注意:修改监听端口。
4、启动脚本
node server.js
5、安装pm2或forever
nodeJS
是通过命令行方式执行,当用户断开时Nodejs也就停止运行了。
可以通过工具让Nodejs常驻在后台运行。
pm2
安装pm2
:
npm install -g pm2
启动脚本:
pm2 start server.js
forever
安装forever
:
npm install forever -g
启动脚本:
forever start server.js
6、http-server方式部署
上面的方式是使用nodeJS
的方式来访问HTML静态资源页,也可以通过静态资源服务器访问,下面介绍一下http-server
的方式。
前置条件:安装完毕nodeJS
。
安装:
npm install http-server -g
启动:
http-server -p 8089
-p可以指定端口,默认为8080
注意:http-server
启动后前台不可以退出,否则无法访问静态资源。
可以使用pm2
使http-server
以守护进程运行:
pm2 start /usr/bin/http-server --name <任务名> -- -p <端口号> -d false
7、测试
我们在nodeJS
项目路径新建一个静态资源页,HelloWorld.html
。
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
启动nodeJS
服务:
forever start server.js
打开浏览器输入IP端口,访问HTML页面:
http://localhost:8089/HelloWorld.html