Nginx彻底教程(必读)
Nginx 概述
HTTP根底功用:
· 处理静态文件,索引文件以及主动索引;
· 反向署理加快(无缓存),简略的负载均衡和容错;
IXDBA.NET技能社区
· FastCGI,简略的负载均衡和容错;
· 模块化的结构。过滤器包含gzipping, byte ranges, chunked responses, 以及 SSI-filter 。在SSI过滤器中,到同一个 proxy 或许 FastCGI 的多个子恳求并发处理;
· SSL 和 TLS SNI 支撑;
IMAP/POP3 署理服务功用:
· 运用外部 HTTP 认证服务器重定向用户到 IMAP/POP3 后端;
· 运用外部 HTTP 认证服务器认证用户后衔接重定向到内部的 SMTP 后端;
· 认证办法:
o POP3: POP3 USER/PASS, APOP, AUTH LOGIN PLAIN CRAM-MD5;
o IMAP: IMAP LOGIN;
o SMTP: AUTH LOGIN PLAIN CRAM-MD5;
· SSL 支撑;
· 在 IMAP 和 POP3 形式下的 STARTTLS 和 STLS 支撑;
支撑的操作体系:
· FreeBSD 3.x, 4.x, 5.x, 6.x i386; FreeBSD 5.x, 6.x amd64;
· Linux 2.2, 2.4, 2.6 i386; Linux 2.6 amd64;
· Solaris 8 i386; Solaris 9 i386 and sun4u; Solaris 10 i386;
· MacOS X (10.4) PPC;
结构与扩展:
· 一个主进程和多个作业进程。作业进程是单线程的,且不需求特别授权即可运转;
· kqueue (FreeBSD 4.1+), epoll (Linux 2.6+), rt signals (Linux 2.2.19+), /dev/poll (Solaris 7 11/99+), select, 以及 poll 支撑;
· kqueue支撑的不同功用包含 EV_CLEAR, EV_DISABLE (暂时制止事情), NOTE_LOWAT, EV_EOF, 有用数据的数目,过错代码;
· sendfile (FreeBSD 3.1+), sendfile (Linux 2.2+), sendfile64 (Linux 2.4.21+), 和 sendfilev (Solaris 8 7/01+) 支撑;
· 输入过滤 (FreeBSD 4.1+) 以及 TCP_DEFER_ACCEPT (Linux 2.4+) 支撑;
· 10,000 非活动的 HTTP keep-alive 衔接仅需求 2.5M 内存。
· 最小化的数据复制操作;
其他HTTP功用:
· 根据IP 和称号的虚拟主机服务;
· Memcached 的 GET 接口;
· 支撑 keep-alive 和管道衔接;
· 灵敏简略的装备;
· 重新装备和在线晋级而无须中止客户的作业进程;
· 可定制的拜访日志,日志写入缓存,以及方便的日志回卷;
· 4xx-5xx 过错代码重定向;
· 根据 PCRE 的 rewrite 重写模块;
· 根据客户端 IP 地址和 HTTP 根本认证的拜访操控;
· PUT, DELETE, 和 MKCOL 办法;
· 支撑 FLV (Flash 视频);
· 带宽约束;
试验特性:
· 内嵌的 perl
· 经过 aio_read()/aio_write() 的套接字作业的试验模块,仅在 FreeBSD 下。
· 对线程的试验化支撑,FreeBSD 4.x 的完成根据 rfork()
为什么挑选Nginx
Nginx 是一个高性能的 Web 和反向署理服务器, 它具有有许多十分优胜的特性:
· 作为 Web 服务器:比较 Apache,Nginx 运用更少的资源,支撑更多的并发衔接,表现更高的功率,这点使 Nginx 特别遭到虚拟主机提供商的欢迎。可以支撑高达 50,000 个并发衔接数的呼应,感谢 Nginx 为咱们挑选了 epoll and kqueue 作为开发模型.
· 作为负载均衡服务器:Nginx 既可以在内部直接支撑 Rails 和 PHP,也可以支撑作为 HTTP署理服务器 对外进行服务。Nginx 用 C 编写, 不论是体系资源开支仍是 CPU 运用功率都比 Perlbal 要好的多。
· 作为邮件署理服务器: Nginx 一起也是一个十分优异的邮件署理服务器(最早开发这个产品的意图之一也是作为邮件署理服务器),Last.fm 描绘了成功而且美好的运用经历。
· Nginx 装置十分的简略,装备文件 十分简练(还可以支撑perl语法),Bugs十分少的服务器: Nginx 发动特别简单,而且简直可以做到7*24不间断运转,即便运转数个月也不需求重新发动。你还可以在 不间断服务的情况下进行软件版别的晋级。
装置Nginx
预先编译好的装置包
Nginx在一些Linux发行版和BSD的各个变种版别的装置包库房中都会有,经过各个体系自带的软件包管理办法即可装置。需求留意的是,许多预先编译好的装置包都比较陈腐,大多数情况下仍是引荐直接从源码编译。
官方源代码下载
点击下载源代码
运用源代码进行构建
Nginx 运用 Unix 下常用的 ‘./configure make make install’ 进程来编译装置。
configure 脚本确认体系所具有一些特性,特别是 nginx 用来处理衔接的办法。然后,它创立 Makefile 文件。
configure 支撑下面的选项:
–prefix=path> – Nginx装置途径。假如没有指定,默以为 /usr/local/nginx。
–sbin-path=path> – Nginx可执行文件装置途径。只能装置时指定,假如没有指定,默以为prefix>/sbin/nginx。
–conf-path=path> – 在没有给定-c选项下默许的nginx.conf的途径。假如没有指定,默以为prefix>/conf/nginx.conf。
–pid-path=path> – 在nginx.conf中没有指定pid指令的情况下,默许的nginx.pid的途径。假如没有指定,默以为 prefix>/logs/nginx.pid。
–lock-path=path> – nginx.lock文件的途径。
–error-log-path=path> – 在nginx.conf中没有指定error_log指令的情况下,默许的过错日志的途径。假如没有指定,默以为 prefix>/logs/error.log。
–http-log-path=path> – 在nginx.conf中没有指定access_log指令的情况下,默许的拜访日志的途径。假如没有指定,默以为 prefix>/logs/access.log。