Nginx
Nginx
特点
成本低
几大优势
nginx配置文件更加易懂
nginx支持网站url地址重写(网站需要域名更换),还能够根据url的特点,进行一个请求转发,判断(7层负载均衡
比如判断来自于移动端的请求,发给移动端服务器,判断是来自于pc端流量,用户请求就发给运行着的pc端代码的服务器}
nginx支持高可用性配置(防止单点故障,服务器崩溃),nginx非常稳定,宕机异常退出的几率很小
nginx能够节省网络带宽,支持静态文件压缩后传输,支持gzip压缩功能
nginx还支持热部署,可以在不停止nginx情况下更新代码,支持7*24h运转
学习nginx的网络模型
网络IO模型概念
内核空间,用户空间
内核空间:一个操作系统的核心组件,称之为内核,独立于普通的应用程序,可以直接操作底层硬件,
处理系统受保护的区域
操作系统为了保护系统的核心区域,也就是内核,使得用户无法直接修改系统底层,因此操作系统就开辟
了两块虚拟空间
一是内核空间,二是用户空间
进程切换
为了控制进程的执行,操作系统的内核需要有能力挂起CPU上运行的程序(暂停一个CPU正在处理的进程),
还能恢复之前已经挂起的进程,这种行为称之为进程切换
进程阻塞
正在执行中的进程,由于某些事件的等待,比如资源加载中,资源加载失败,操作系统自动的就会阻塞该进程,
调用内核的block语句,让该进程处于组撒状态,因此阻塞的进程是一种主动的行为。
文件描述
Linux IO模型
input输入
output输出
对于linux的文件读写操作
数据的IO操作,比如文件的读取,数据优先会被拷贝到操作系统的内核缓冲区,然后在缓冲去拷贝到应用程序的内存空间
这是属于本地文件的IO过程
一个读取操作,经历了两个阶段
1.等待数据准备
2数据从内核空间拷贝到用户进程空间
网络IO
1.等待网络上的数据分段到达,然后复制到内核的缓冲区
2.数据从内核缓冲区拷贝到用户空间的应用程序
网络应用主要面临两个问题,数据计算,网络IO延迟
网络的延迟,是造成性能低下的最大的原因
网络IO指的就是在网络中进行数据的读,写操作,本质上就是一个socket套接字读取,socket套接字在linux
系统中被抽象为流的概念,网络IO就是对数据流的处理
同步阻塞IO block IO
同步非阻塞
同步阻塞和非阻塞的区别
IO多路复用
select事件
select就是做自动轮训的这件事,他和非阻塞轮训的区别在
异步非阻塞IO模型
前几个网络IO模型的总结