当前位置: 首页 > news >正文

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

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

一、安装nodejs

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

1、用yum 命令安装

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

yum install -y nodejs 
yum install -y npm

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

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

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

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

wget https://nodejs.org/dist/v16.14.0/node-v16.14.0-linux-x64.tar.xz

如果没有wget命令,用

yum install -y wget

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

xz -d node-v16.14.0-linux-x64.tar.xz
tar -xvf node-v16.14.0-linux-x64.tar 

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

mv node-v16.14.0-linux-x64 /usr/local/node-v16.14.0-linux-x64

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

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

使用以下命令进行测试

node -v
npm -v

结果如下:
在这里插入图片描述

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

1、编写一个简单的js服务文件MyFirstServer.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命令启动服务器

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 文件,内容如下:

'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服务器

node MyFirstHttpsServer.js

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

在这里插入图片描述

http://www.lryc.cn/news/212560.html

相关文章:

  • 3.10每日一题(三角有理函数积分(三角函数加减乘除))
  • python练习(猜数字,99乘法表)
  • 正确部署Baichuan2(Ubuntu20.4) 步骤及可能出现的问题
  • docker 部署prometheus和grafana
  • 在本地模拟C/S,Socket套接字的使用
  • 香港科技大学广州|可持续能源与环境学域博士招生宣讲会—东南大学专场!!!(暨全额奖学金政策)
  • [Leetcode] 0108. 将有序数组转换为二叉搜索树
  • Pandas数据导入和导出:CSV、Excel、MySQL、JSON
  • 第16期 | GPTSecurity周报
  • 省钱兄短剧短视频视频滑动播放模块源码支持微信小程序h5安卓IOS
  • SDRAM学习笔记(MT48LC16M16A2,w9812g6kh)
  • ARM 学习笔记3 STM32G4 定时器相关资料整理
  • LeetCode 917 仅仅反转字母 简单
  • JAVA深化篇_25—— IO流章节全网最全总结(附详细思维导图)
  • 易基因:ChIP-seq等揭示BRWD3调控KDM5活性以维持H3K4甲基化水平的表观机制|PNAS
  • C++深度优先(DFS)算法的应用:收集所有金币可获得的最大积分
  • uniapp中APP端使用echarts用formatter设置y轴保留2位小数点不生效
  • 无糖茶饮三十年,从无人问津到人手一瓶
  • 面向Three.js开发者的3D自动纹理化开发包
  • 数字孪生技术与VR:创造数字未来
  • 系统架构设计师-第15章-面向服务架构设计理论与实践-软考学习笔记
  • 为什么我觉得Rust比C++复杂得多?
  • python sqlalchemy(ORM)- 03 增删改查
  • Flutter笔记:完全基于Flutter绘图技术绘制一个精美的Dash图标(上)
  • 学习gorm:彻底弄懂Find、Take、First和Last函数的区别
  • 796. 子矩阵的和(二维前缀和)
  • 利用ChatGPT进行股票走势分析
  • 万字解析设计模式之单例模式
  • vue2.x 二次封装element ui 中的el-dialog
  • ssh连接Ubuntu虚拟机出现connection reset by ip地址 port 22怎么解决