nginx - 学习脑图
高性能的静态web服务器
反向代理(负载均衡)
nginx 为什么适应高并发:
一个进程处理多个请求
非阻塞式的
对请求结果缓存
优势特点:
高并发,高性能
扩展性好
异步非租塞的事件驱动模型
高可靠性
热部署,平滑升级
进行nginx 二次开发,尽可能减少修改 masterprocess,而是修改第三方模块,行业规定也是不开发masterProcess
materProcess 不真正处理用户请求,而是进行管理 和监控,如下第三方模块
子模块down掉了,masterprocess,会重启一个子模块, linux 里面子进程会发送信号
配置文件修改,加了路由,热重启后,materProcess 检测到修改后,会自动通知work Process,靠这种结构,才可以进行平滑升级
真正缓存哪些内容,由workProcess进行处理,cacahLoader 负责加载缓存,cacah Manager 负责管理缓存
所有子进程 通信,使用共享内存。
linux 信号量管理机制:
对于进程管理是使用信号量管理的
父子进程信号量, 子进程down ,迫使向 父进程发送信号量
了解不深
进程优雅退出
进程直接退出
关机的时候,向应用程序,先发15 ,到等待时间不完成,发送9
signup 迫使进程重新读取配置文件
用户自定义信号量
使用信号量管理master 和worker
不推荐 直接向worker进程 发送信号量, 而是有mater进程发送信号量,对worker进程进行管理
term int 直接关闭
quit 平滑关闭
hup 接受hup信号,重读配置文件,之后可能改变nginx某些行为,重新kill调worker进程,打开新的worker进程
usr1
usr2
winch
相当于给 mater进程发送 命令,
nginx 采用事件驱动模型,事件处理机制,对于这个模型,会要求,worker进程尽量和CPU的个数绑定在一块,从而尽可能减少CPU的切换,提高CPU 缓存切换 命中效率,这个是nginx的初衷,所以,cpu有多少课,就启动多少worker进程。
这个是nginx 主二进制配置文件
master 进程接受信号量
对worker进程进行演示
二进制文件 操作nginx 其实也是对信号量进行操作
配置文件重载的原理真相
nginx 的热升级(nginx 升级新版本)
winch信号 导致 旧的worker 子进程退出,master 不退出
热升级,首先要保证目录结构一致,
还可以使用命令行,查看参数和 版本
nginx 的模块化管理机制
核心模块 ,是运行必备模块
ssl 对https
gzip 对相应报文时候,进行压缩
nginx 配置安装的配置参数
–prefix 配置主目录
在安装过程中,由于新增 模块,缺少什么依赖包,使用相应的依赖包
nginx 配置文件使用
代表一个work 子进程 里面可以最多可以处理并发请求数量,需要根据测试环境后,调整
虚拟主机的分类: 其实就是利用单台主机,构建多个不同类型的网站
在单台服务器上,安装多块网卡,每块网卡上配置公网IP地址
网卡只有一块, 但是不同端口提供不同服务
监听各个网卡上IP的8080端口,(该机器上有三块网卡)
一台物理主机上,使用不同域名,区别不同服务,两个域名绑定一个公网IP
配置文件main断核心参数用法