1、Nginx详解介绍 、模块 、运 维薛长俊 2013.8目 录目 录基本 HTTP特性 处理静态文件,索引文件以及自动索引; 打开文件描述符缓存; 使用缓存加速反向代理; 简单负载均衡以及容错; 远程 FastCGI, uwsgi, SCGI,和 memcached服务的缓存加速支持; 模块化的架构。过滤器包括 gzip压缩、 ranges支持、 chunked响应、 XSLT, SSI以及图像缩放。在 SSI 过滤器中,一个包含多个 SSI的页面,如果经由 FastCGI或反向代理处理,可被并行处理; 支持 SSL, TLS SNI。 其他 HTTP特性 基于 名字和 IP的虚拟主机; Ke
2、ep-alive和 pipelined连接支持; 灵活的配置; 重新加载配置以及在线升级时,不需要中断正在处理的请求; 自定义访问日志格式,带缓存的日志写操作以及快速日志轮转; 3xx-5xx错误代码重定向; 重写( rewrite)模块:使用正则表达式改变 URI; 根据客户端地址执行不同的功能; 基于客户端 IP地址和 HTTP基本认证机制的访问控制; 支持验证 HTTP referer; 支持 PUT、 DELETE、 MKCOL、 COPY以及 MOVE方法; 支持 FLV流和 MP4流; 速度限制; 来自同一地址的同时连接数或请求数限制; 嵌入 Perl语言。邮件代理服务器特性 使用
3、外部 HTTP认证服务器重定向用户到 IMAP/POP3后端; 使用外部 HTTP认证服务器认证用户后重定向连接到内部 SMTP后端; 支持的认证方式: POP3: USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5; IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5; SMTP: AUTH LOGIN/PLAIN/CRAM-MD5; SSL支持; STARTTLS和 STLS支持。架构和可扩展性 一个主进程和多个工作进程,工作进程以非特权用户运行; 支持的事件机制: kqueue( FreeBSD 4.1+)、 epoll( Li
4、nux 2.6+)、 rt signals( Linux 2.2.19+)、 /dev/poll( Solaris 7 11/99+)、 event ports( Solaris 10)、 select以及 poll; 众多支持的 kqueue特性包括 EV_CLEAR、 EV_DISABLE(临时禁止事件)、NOTE_LOWAT、 EV_EOF,可用数据的数量,错误代码; 支持 sendfile( FreeBSD 3.1+, Linux 2.2+, Mac OS X 10.5+)、 sendfile64( Linux 2.4.21+)和 sendfilev( Solaris 8 7/01+)
5、; 文件 AIO( FreeBSD 4.3+, Linux 2.6.22+); DIRECTIO (FreeBSD 4.4+, Linux 2.4+, Solaris 2.6+, Mac OS X); 支持 Accept-filters( FreeBSD 4.1+, NetBSD 5.0+)和 TCP_DEFER_ACCEPT( Linux 2.4+); 10000个非活跃的 HTTP keep-alive连接仅占用约 2.5M内存; 尽可能避免数据拷贝操作。 测试过的系统和平台 FreeBSD 3 10 / i386; FreeBSD 5 10 / amd64; Linux 2.2 3 /
6、i386; Linux 2.6 3 / amd64; Solaris 9 / i386, sun4u; Solaris 10 / i386, amd64, sun4v; AIX 7.1 / powerpc; HP-UX 11.31 / ia64; MacOS X / ppc, i386; Windows XP, Windows Server 2003.目 录内核模块 配置示例user nobody;worker_processes 4;#error_log /opt/nginx_logs/error.log;#error_log /opt/nginx_logs/error.log notice;#error_log /opt/nginx_logs/error.log info;pid logs/nginx.pid;worker_rlimit_nofile 65535;