Nginx的软件架构

nginx原理架构图

Nginx是 master/worker 模型

一个master进程,可生成一个或多个worker进程,每个worker进程基于事件驱动机制响应客户端请求;
事件驱动机制:epoll(Linux),kqueue(FreeBSD),/dev/poll(Solaris)
消息通知:select,poll,rt signals
支持sendfile,sendfile64
支持AIO,mmap
 
master的任务:加载配置文件、管理worker进程、平滑升级、……
worker的功能:提供http服务、http代理、fastCGI代理、……
 
模块类型:
核心模块(对于http服务及邮件服务都是必要的):core module
Standard HTTP modules 标准模块必须装
Optional HTTP modules 可选模块可以选择用还是不用
Mail modules 邮件模块
3rd party modules 第三方模块
 
用来做什么?
静态资源的web服务器
http服务器的反向代理
nginx可以做正向代理服务器:
代理客户端的请求,自己处理静态资源,如果是动态资源就交给其它应用
nginx可以做反向代理服务器:
代理后端服务器的作用,如果一个客户端把请求发过来,他会完全把请求转发给后端服务器
nginx做反向代理可以隐藏后端服务器的IP;还可以给后端服务器分担压力;在反向代理上还可以做一个负载均衡的功能,但有多个客户端请求时,可以分别发给几台后端服务器

 

posted @ 2019-05-07 11:54  jianchen013  阅读(194)  评论(0编辑  收藏  举报