第三阶段面试题
Nginx
nginx常用模块以及其功能
proxy模块,进行代理功能
ssl模块,进行HTTPS协议的使用
gzip模块,进行传输数据的压缩
upstream模块,进行反向代理时使用
static模块,静态资源进行访问的模块
cache模块,用于缓存设置
rewrite模块,用于地址重写
nginx常用的负载均衡算法
轮询
默认算法,当代理服务器收到请求后,将请求按顺序对服务端进行转发
加权轮询
为服务端服务器配置权重,代理服务器在进行转发时,根据权限大小来进行转发
ip_hash
对于同一个ip发送的请求,将其请求发送到同一台后台服务器上
url_hash
对于请求的相同的URL的IP,代理服务器将其请求发送到同一个后台服务器上
ip_hash和url_hash都可以进行会话的保持,提高用户体验
lease_conn
代理服务器在进行请求转发时,根据当前服务器的连接数进行分配
lease_time
代理服务器在进行请求转发时,根据后台服务器的平均请求时间和当前连接数进行分配请求
random
代理服务器随机对请求进行转发
负载均衡的分类
软件: nginx lvs haproxy
特点: 成本低,开源,部署自由,不需要额外的硬件资源,使用当前已有资源就可以进行部署
适用于中小型企业和初创公司
硬件:F5,A10Network Thunder·
特点; 高可靠,高性能,高成本
使用与大型企业和数据中心,针对有对安全性要求较高的场景
云负载: AWS Elstaic Load Bincing (ELB)
特点:可以基于应用进行负载均衡也可以基于网络进行负载均衡也可以使用传统的负载均衡
使用与微服务和云原生场景
nginx并发量高的原因
多模块,异步非阻塞,I/O多路复用
HTTP协议的特点
无状态
无连接
媒体独立
HTTP的原理
客户端发送请求,服务端收到之后进行返回
HTTP报文中的信息
- 起始行:
- 请求报文:
方法 请求目标 HTTP版本
- 响应报文:
HTTP版本 状态码 原因短语
- 请求报文:
- 首部字段:
- 由多个键值对组成,描述请求或响应的附加信息。
- 主体:
- 可选部分,携带请求或响应的具体数据。