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代理...
模块类型:
- 核心模块:core module
- Standard HTTP modules
- Optional HTTP modules
- Mail modules
- 3rd party modules
nginx的用途:
- 静态资源的web服务器;
- http服务器反向代理;