Nginx原理

Nginx的特性:

  • 模块化设计、扩展性;
  • 高可靠性:master/worker
  • 支持热部署:不提机更新配置文件、更换日志、更新服务程序版本
  • 低内存消耗:10000个keep-alive连接模式下的非活动连接仅消耗2.5M内存
  • event-driven/aio/mmap

基本功能:

  • 静态资源的web服务器
  • http协议的反向代理服务器
  • pop3、smpt、imap4等邮件协议的反向代理,很少使用
  • 能缓存打开的文件(元数据)、支持FastCGI(php-fpm),uWSGI(python web Framwork)等协议
  • 模块化(非DSO机制),过滤器zip,SSI,SSL

Web服务相关的功能:

  • 虚拟主机(server)、keepalive持久连接、访问日志(支持基于日志缓冲提高其性能)、url rewrite 、路径别名、基于IP及用户的访问控制及并发限制;

Nginx的基本架构

  • master/worker

  • 一个master进程,可生成一个或多个worker进程;

  • 事件驱动:epoll(linux)、kqueue(FreeBSD)、/dev/poll(solaris)

  • 消息通知机制:select、poll、rt signals

  • 支持sendfile sendfile64

  • 支持AIO,mmap

  • master:加载配置文件、管理worker进程、平滑升级...

  • worker:http服务,http代理,fastcgi代理...

  • Nginx原理_第1张图片
    Paste_Image.png

模块类型:

  • 核心模块:core module
  • Standard HTTP modules
  • Optional HTTP modules
  • Mail modules
  • 3rd party modules

nginx的用途:

  • 静态资源的web服务器;
  • http服务器反向代理;

你可能感兴趣的:(Nginx原理)