Nginx WEB模块+ 链接(三次握手、四次挥手、TCP流控和封装结构)
一、Nginx WEB模块
(1)随机主页——将主页设置成随机页面,是一种微调更新机制
微更新 random_index_module
(2)替换模块——网页内容替换
sub_module
如果我们用模板生成网站的时候,因为疏漏或者别的原因造成代码不如意,但是此时因为文件数量巨大,不方便全部重新生成,那么这个时候我们就可以用此模块来暂时实现纠错。另一方面,我们也可以利用这个实现服务器端文字过滤的效果。
(3) 文件读取模块
ngx_http_core_module
(4)文件压缩
ngx_http_gzip_module
(5)页面缓存
ngx_http_headers_module
(6)防盗链
ngx_http_referer_module
(7)连接状态
stub_status_module
(8)列举5~ 1 0个NGINX模块其功能?
ngx_http_core_module 包括一些核心的 http 参数配置,对应 Nginx 的配置为 HTTP 区块部分
ngx_http_access_module 访问控制模块,用来控制网站用户对 Nginx 的访问
ngx_http_gzip_module 压缩模块,对 Nginx 返回的数据压缩,属于性能优化模块
ngx_http_fastcgi_module FastCGI 模块,和动态应用相关的模块,如 PHP
ngx_http_proxy_module proxy 代理模块
ngx_http_upstream_module 负载均衡模块,可实现网站的负载均衡和节点的健康检查
ngx_http_rewrite_module URL 地址重写模块
ngx_http_limit_conn_module 限制用户并发连接数以及请求数的模块
ngx_http_limit_req_module 根据定义的 key 限制 Nginx 请求过程的速率
ngx_http_log_module 访问日志模块,以指定的格式记录 Nginx 客户访问日志等信息
ngx_http_auth_basic_module Web 认证模块,设置 Web 用户通过账号密码访问 Nginx
ngx_http_ssl_module ssl 模块,用于加密的 http 连接,如 https
ngx_http_stub_status_module 记录 Nginx 基本访问状态信息等的模块
二、关于链接的问题
1.什么是链接
(1)OSI封装回顾
(2)TCP封装结构
(3)TCP三次握手
1)发送端首先发送一个带有SYN(synchronize)标志地数据包给接收方。
2)接收方接收后,回传一个带有SYN/ACK标志的数据包传递确认信息,表示我收到了。
3)最后,发送方再回传一个带有ACK标志的数据包,代表我知道了,表示’握手‘结束。
(4)TCP四次挥手/四次断开
1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
3)第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
4)第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手
(5)TCP机制 —— 四大计时器
重传计时器(Retransmession)
持久计时器(Persistance)
保活计时器(keep-alive)
时间等待(time-wait)
(6)TCP流控/拥塞管理
原理
接收端处理数据的速度是有限的,如果发送方的速度太快,就会把缓冲区u打满。这个时候如果继续发送数据,就会导致丢包等一系列连锁反应。所以TCP支持根据接收端能力来决定发送端的发送速度。这个机制叫做流控制。