web服务器原理与nodejs搭建
基础概念
Web Service:https://zh.wikipedia.org/wiki/Web服务
基础http网络传输协议的web服务处理过程:
node.js: 基于JavaScript语言和V8引擎的开源Web服务器项目, 发展过程参考:https://www.liaoxuefeng.com/wiki/1022910821149312/1023025235359040
两个v8 JavaScript engine
nodejs安装:通过二进制或者源码安装 我的环境为centos7, 参考:https://cloud.tencent.com/developer/article/1341061
npm:JavaScript 世界的包管理工具,并且是 Node.js 平台的默认包管理工具。通过 npm 可以安装、共享、分发代码,管理项目依赖关系。
实战:最简单的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');
实战:nodejs搭建https服务
- 生成https证书,(私有证书,自己产生的证书,对于浏览器来说是不受认可的;浏览器接收的一般是认证过的证书)
参考:https://www.cnblogs.com/liyulong1982/p/6106129.html
'use strict'
var https = require('https');
var fs = require('fs');
var options = {
key : fs.readFileSync('./cert/server.key'),
cert : fs.readFileSync('./cert/server.crt')
}
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');
实战:实现一个webserver
server.js
'use strict'
var http = require('http');
var serveIndex = require('serve-index');
var express = require('express');
var app = express();
//顺序不能换
app.use(serveIndex('./public'));
app.use(express.static('./public'));
var http_server = http.createServer(app);
http_server.listen(80, '0.0.0.0');
express:一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。使用 Express 可以快速地搭建一个完整功能的网站。
serve-index: serve-index的功能是将文件夹中文件列表显示到浏览器中