Nginx 个人笔记

123 阅读2分钟

1、Nginx介绍

1.1、Nginx简介

nginx是一个轻量级且高性能的服务器。

1.2、Nginx的特点

  1. 性能优秀
  2. 拓展性强
  3. 内存消耗低
  4. 可靠性强(很多公司都在使用)
  5. 高并发性(事件驱动模型,多进程机制)
  6. 热部署
  7. 自由的BSD许可协议

1.3、Nginx架构

微信截图_20240129101347.png 以上是Nginx的架构图,左下角说明了Nginx的特性:1.事件驱动 2.异步线程 3.非阻塞线程

1. 什么是事件驱动&异步非阻塞?

首先事件驱动是一种思想,并不是一种具体实现。事件驱动在这也叫I/O多路复用,指的是不需要每次请求就创建新线程了,而是直接返回结果给用户线程,用户线程就空闲出来了可以去干其他事情,等到之前的请求执行完了后会主动通知用户线程“您有一个待处理的订单”了。从而实现避免线程被频繁创建导致的开销问题,也能够支持高并发了。注意:这里说的用户线程是指的Nginx的用户线程,浏览器的请求还是在等待过程的。

2.多进程机制

Nginx的进程类型分为:Master主进程和Worker工作进程。主进程负责加载配置、启动工作进程和非停升级。工作进程是fork主进程来的,负责处理具体传输。如果Nginx fork了多个工作进程并在主进程通过socket监听了配置的端口,那么每个工作进程都可以accept这个连接。当一个连接进来后,所有fork了的工作进程都会受到消息,但只有一个工作进程可以接受(accept)这个连接并加锁,其它的工作进程接受失败。

3.Proxy Cache

Proxy Cache翻译过来是代理缓存。顾名思义是对客户端访问过后的内容进行缓存,这样可以对请求进行快速响应,这是根据ProxyCache配置中校验是否需要缓存内容的。这样一来减少了代理服务器(Nginx)和服务器(目标服务器)的交互,而是Nginx从本地磁盘中直接响应给客户端。在Nginx将需要缓存的数据缓存到本地磁盘的时候使用了零拷贝和mmap技术,所以缓存copy的时间也被大大优化。


本人有时间还会继续完善笔记。