nginx 整体架构

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 开销

 

 

posted @ 2024-11-10 15:05  lenbkan  阅读(9)  评论(0编辑  收藏  举报