学习课程名称:HTTP协议原理+实践 ,Web开发工程师必学
章节名称:Nginx代理以及面向未来的HTTP
讲师姓名:Jokcy
课程内容概述:
Nginx概述
Nginx是一个高性能的HTTP和反向代理服务器
是一款轻量级的高性能的web服务器/反向代理服务器/电子邮件代理服务器
单台物理服务器可支持30000~50000个并发请求
实际上仅支持20000~25000个并发请求
Nginx和Apache相对的优点
1.nginx相对于apache的优点:
轻量级,同样起web服务,比apache占用更少的内存及资源
抗并发,nginx处理请求是异步非阻塞的,而apache是阻塞型的在高并发下,nginx能保持低资源低消耗高性能
高度模块化的设计,编写模块相对简单
2.apache相对于nginx的优点∶
Rewrite比nginx的rewrite强大 (rewrite的主要功能就是实现统一资源定位符URL的跳转)
模块多,基本想到的都可以找到
少bug, nginx的bug相对较多
超稳定
Nginx配置代理缓存
使用proxy_cache_path来配置一个cache, 示例
proxy_cache_path cache levels=1:2 keys_zone=my_cache:10m
这里的 cache 是缓存文件的路径
windows使用相对路径,为nginx安装目录下
mac可以设置自己的路径,如/var/cache/你的目录
levels 表示是否要创建多级文件夹
因为cache目录声明之后会用于很多代理服务器
默认所有代理会存在于一个目录中导致查找速度变慢
分级文件会优化速度
keys_zone 表示代理缓存指定名称
查找缓存时用的名称和缓存大小声明
Nginx部署HTTPS服务
配置证书及安装ssl模块
HTTP2 的优势
新的二进制格式(Binary Format),HTTP1.x 的解析是基于文本。基于文本协议的格式解析存在天然缺陷,文本的表现形式有多样性,要做到健壮性考虑的场景必然很多,二进制则不同,只认 0 和 1 的组合。基于这种考虑 HTTP2.0 的协议解析决定采用二进制格式,实现方便且健壮。
多路复用(MultiPlexing),即连接共享,即每一个 request 都是是用作连接共享机制的。一个 request 对应一个 id,这样一个连接上可以有多个 request,每个连接的request 可以随机的混杂在一起,接收方可以根据 request 的 id 将 request 再归属到各自不同的服务端请求里面。
header 压缩,HTTP1.x 的 header 带有大量信息,而且每次都要重复发送,HTTP2.0 使用 encoder 来减少需要传输的 header 大小,通讯双方各自 cache 一份 header fields 表,既避免了重复 header 的传输,又减小了需要传输的大小。
服务端推送(server push),同 SPDY 一样,HTTP2.0 也具有 server push 功能。
分帧传输:可以并发发送不同请求。