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

WebRtc03: Web服务器原理和Nodejs搭建

web服务器

选型

  • Nodejs
  • Nginx
  • Apache

工作原理

在这里插入图片描述

Nodejs

工作原理

在这里插入图片描述

解析

在这里插入图片描述

事件处理

在这里插入图片描述

两个V8引擎

在这里插入图片描述

Nodejs环境搭建

二进制库安装

服务器是基于centos的,使用yum命令下载

yum install nodejs
yum install npm

或者直接使用官方的二进制库

wget -c https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-x64.tar.xz
tar -xvf node-v16.20.2-linux-x64.tar.xz
mv node-v16.20.2-linux-x64 nodejs
mv node /usr/local/

源码安装

下载nodejs源码:https://nodejs.org/zh-cn/download
生成Makefile
./configure --prefix=/usr/local/nodejs

make -j 4 && sudo make install

简单的http服务

  • require 引入http模块
  • 创建http服务
  • 侦听端口

server.js

'use strict'
var http = require('http');

var app = http.createServer(function(req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello world\n');
}).listen(8080, '0.0.0.0');

以阿里云的云服务器为例,需要打开安全组的端口8080
在这里插入图片描述
运行服务器并用另一个端口查看是否启动服务器

node server.js
- 查看监听端口
netstat -ntpl 

在浏览器上输入ip:8080,可以看到helloworld打印

启动服务的方式

前台运行
node app.js
后台运行
nohub node app.js &
使用工具运行
forever start app.js

安装forever

- 使用淘宝的npm源
npm config set registry https://registry.npmmirror.com
npm config get registry

- 必须加上-g 不然forever只在当前工作目录生效
npm install forever -g

使用forever

forever start server.js
forever stop server.js

创建https服务

为什么要使用https服务

  • 个人隐私及安全原因
  • https是未来的趋势

HTTPS = HTTP + TLS/SSL

基本原理

在这里插入图片描述

nodejs搭建HTTPS服务

  • 生成HTTPS证书
  • 引入HTTPS模块
  • 指定证书位置,并创建HTTPS服务
'use strict'
var https = require('https');
var fs = require('fs');

var options = {
    key :   fs.readFileSync('keyPath'),
    cert :  fs.readFileSync('pemPath')
}

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

实现一个真正的web服务器

  • 引用express模块
  • 引入serve-index模块
  • 指定发布目录
npm install express serve-index
'use strict'
var http = require('http');
var https = require('https');
var fs = require('fs');

var express = require('express');
var serveIndex = require('serve-index');
var app = express();
app.use(serveIndex('./public'));
app.use(express.static('./public'));

// http server
var http_server = http.createServer(app);
http_server.listen(8080, '0.0.0.0');

// 这里没有证书,所以屏蔽了
// var options = {
//     key :   fs.readFileSync('keyPath'),
//     cert :  fs.readFileSync('pemPath')
// }

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

http://www.kler.cn/a/488780.html

相关文章:

  • 百度Android面试题及参考答案 (下)
  • js代理模式
  • rk3568 , buildroot , qt ,使用sqlite, 动态库, 静态库
  • python无需验证码免登录12306抢票 --selenium(2)
  • C++ STL 中的 vector 总结
  • 从零开始:使用VSCode搭建Python数据科学开发环境
  • 回归预测 | MATLAB实LSTM多输入单输出回归预测
  • [Git] git reset --hard / git reset --soft
  • Perl语言的数据结构
  • STM32的存储结构
  • abap安装cl_json类
  • 玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖
  • Flutter项目开发模版,开箱即用(Plus版本)
  • k8s dashboard离线部署步骤
  • windows中,git bash 使用conda命令
  • ISP流程--去马赛克详解
  • ETL的工作原理
  • 【算法】图解排序算法之归并排序、快速排序、堆排序
  • 基于Linux环境的进度条实现
  • 通过idea创建一个springboot 并执行案例
  • Linux (CentOS) 安装 Docker 和 Docker Compose
  • taro转H5端踩坑
  • 【联合物种分布模型】HMSC联合物种分布模型在群落生态学中的贝叶斯统计分析应用
  • 计算机网络之---局域网
  • 如何在 Ubuntu 22.04 上使用 LEMP 安装 WordPress 教程
  • 关于大数据的基础知识(一)——定义特征结构要素