Nginx 是什么
Nginx 是一款 C 语言编写高性能 Web 服务器,反向代理服务器。占用内存少、并发能力强
使用场景
nginx主要有以下 4 个使用场景
- 作为 Http 服务器,可以提供静态网页和静态资源的访问
- HTTP代理缓存,缓存服务端请求数据
- 作为反向代理服务器,将请求代理转发
- 作为负载均衡服务器,将请求代理转发到多个服务器(最主要的使用场景)有多种使用方式,配置权重、hash路由等等
整体架构与核心组件
Nginx 主要由一个 Master 进程 + N 个 Worker 进程组成
Master 进程不处理网络请求,而是负责与 Worker 进程的交互,主要有下面几个功能:
- 加载、重载配置
- 加载、调度、监控、重启 Worker 进程
- 不停机更新(实现原理:通过 Master 进程 fork 出新的 Master 子进程来实现)
Woker 进程主要用来处理网络请求,一般来说,建议 woker进程的数量 = CPU的核数
Nginx 实现高性能的原因
- 有多个 Worker 进程,各个进程处理请求互不影响
- 是基于异步的、非阻塞的事件驱动模型,类似于 Java 的 NIO 模型,依赖操作系统底层的事件模型(BSD kqueue、Linux epoll 及 Solaris event ports)
- 有一个简单的内存池模块,用来将多次想系统的内存请求合并成一次,从而降低 CPU 开销
标签:架构,请求,Nginx,Worker,整体,nginx,Master,进程,服务器 From: https://www.cnblogs.com/baokang/p/18537958