Centos下用nodejs实现一个简单的web服务器

WebRTC是音视频直播中最常用的一个框架,在使用的过程中,我们就需要实现一个服务器端。本文以nodejs实现一个服务器为例,讲述一下在centos下如何用nodejs实现一个简单的web服务器。

一、安装nodejs

在linux环境下安装nodejs有多重方式,主要分为安装包安装或者源码安装,这里为了方便,我们就直接用安装包的方式来安装。

1、用yum 命令安装

用以下命令来安装nodejs和依赖的npm服务

shell 复制代码
yum install -y nodejs 
yum install -y npm

有时候因为没有配置对应的yum源的原因,就会出现找不到nodejs的情况,这个时候找yum源比较麻烦,我们就直接下载安装包来安装

2、用下载安装包的方式来安装nodejs

首先,我们到nodejs的下载网站上下载的包(这里选择了16版本,最新版本需要升级glib,比较麻烦),复制其下载链接

然后到linux命令行,用wget命令下载

shell 复制代码
wget https://nodejs.org/dist/v16.14.0/node-v16.14.0-linux-x64.tar.xz

如果没有wget命令,用

shell 复制代码
yum install -y wget

来安装即可。

等待安装完成以后,先后执行以下命令解压下载的安装包
node-v16.14.0-linux-x64 是我下载的包名,对应到自己下载的包即可

shell 复制代码
xz -d node-v16.14.0-linux-x64.tar.xz
tar -xvf node-v16.14.0-linux-x64.tar 

将解压后的文件移动到/usr/local/下面(这样做的目的是为了防止后面误删)

shell 复制代码
mv node-v16.14.0-linux-x64 /usr/local/node-v16.14.0-linux-x64

部署bin文件(这样就可以在随时随地使用node命令)

shell 复制代码
ln -s  /usr/local/node-v16.14.0-linux-x64/bin/node /usr/bin/node
ln -s /usr/local/node-v16.14.0-linux-x64/bin/npm /usr/bin/npm

使用以下命令进行测试

shell 复制代码
node -v
npm -v

结果如下:

二、开发最简单的一个web服务器

1、编写一个简单的js服务文件MyFirstServer.js,内容如下

js 复制代码
var http = require('http');
http.createServer(function (request, response) {
    // 发送 HTTP 头部
    // HTTP 状态值: 200 : OK
    // 内容类型: text/plain。并用charset=UTF-8解决输出中文乱码
    response.writeHead(200, {'Content-Type': 'text/plain; charset=UTF-8'});
 
    // 下句是发送响应数据
    response.end('Hello World! 这是简单的web服务器测试。\n');
}).listen(8888);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');

2、在服务端用node命令启动服务器

shell 复制代码
node MyFirstServer.js

结果如下:

3、浏览器中输入地址http://192.168.86.129:8888/(192.168.86.129是我虚拟机的地址,改成部署服务器的地址即可),即可看到信息:

三、开发一个简单的https的web服务器

1、生成自签名证书,参考 《Centos7下生成https自签名证书

在js文件所在的目录新建一个cert的文件夹,将生成的server.key和server.pem复制到cert文件夹中

2、编写MyFirstHttpsServer.js 文件,内容如下:

js 复制代码
'use strict'

var https = require('https');
var fs = require('fs');

var options = {
  key  : fs.readFileSync('./cert/server.key'),
  cert : fs.readFileSync('./cert/server.pem')
}

var app = https.createServer(options, function(req, res){
        res.writeHead(200, {'Content-Type': 'text/plain'});
        res.end('HTTPS:Hello World! https \n');


}).listen(443, '0.0.0.0');

3、启动nodejs服务器

shell 复制代码
node MyFirstHttpsServer.js

4、在浏览器输入:https://192.168.86.129:443,在弹出的页面高级中选择仍然访问,页面如下:

四、开发一个简单的Web服务器

上面我们写了一个简单的http和https的服务器,里面的内容是直接写死的,在实际的开发中这样肯定不行,这里我们就用发布的两个模块serve-indexexpress,来简单开发一个包含静态文件的web服务器。

1、编写服务器的代码文件MyFirstWebServer.js ,内容如下

js 复制代码
'use strict'

var http = require('http');
var https = require('https');
var fs = require('fs');


var serveIndex = require('serve-index')
var express = require('express');

//设置一个app对象
var app = express();

//映射静态文件
app.use(serveIndex('./public'));
app.use(express.static('./public'));

//启动http服务
var http_server = http.createServer(app);
http_server.listen(80,'0.0.0.0');

//启动https服务

var options = {
  key  : fs.readFileSync('./cert/server.key'),
  cert : fs.readFileSync('./cert/server.pem')
}

var https_server = https.createServer(options,app);
https_server.listen(443,'0.0.0.0');

2、准备静态文件

我们在当前目录下新建一个public文件夹,并在里面新建1111.txt和2222.txt两个文件,结构如下:

3、安装serve-indexexpress两个模块

用下面的命令安装两个模块

shell 复制代码
npm install express serve-index

4、启动服务器

用以下命令启动服务器

shell 复制代码
node MyFirstWebServer.js

5、用浏览器进行测试

用http和https方式打开服务器,内容如下

打开具体的文件能够访问到文件里面的内容


后记

个人总结,欢迎转载、评论、批评指正

相关推荐
Bessssss42 分钟前
centos日志管理,xiao整理
linux·运维·centos
豆是浪个44 分钟前
Linux(Centos 7.6)yum源配置
linux·运维·centos
gywl12 小时前
openEuler VM虚拟机操作(期末考试)
linux·服务器·网络·windows·http·centos
阿松哥哥201821 小时前
linux环境使用源码方式安装nginx(centos)
linux·nginx·centos
☆凡尘清心☆1 天前
CentOS-stream-9安装ansible
linux·centos·ansible
岑梓铭1 天前
(CentOs系统虚拟机)Standalone模式下安装部署“基于Python编写”的Spark框架
linux·python·spark·centos
远游客07132 天前
centos stream 8下载安装遇到的坑
linux·服务器·centos
jingyu飞鸟2 天前
centos-stream9系统安装docker
linux·docker·centos
cominglately2 天前
centos单机部署seata
linux·运维·centos
魏 无羡2 天前
linux CentOS系统上卸载docker
linux·kubernetes·centos