nginx简介

点点圈 提交于 2019-12-26 07:39:35

nginx

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。

其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

中文名:              Nginx                                                                                      外文名:               Nginx

软件许可:          BSD许可                                                                                 软件类型:          开源软件,网页服务器软件 

兼容性:              Linux系统,Windows NT系统                                                   别    名:             engine x

优点

Nginx 可以在大多数Unix Linux OS 上编译运行,并有Windows移植版。 Nginx 的1.4.0稳定版已经于2013年4月24日发布,一般情况下,对于新建站点,建议使用最新稳定版作为生产版本,已有站点的升级急迫性不高。

Nginx 的源代码使用 2-clause BSD-like license。

Nginx 是一个很强大的高性能Web和反向代理服务,它具有很多非常优越的特性:

在连接高并发的情况下,Nginx是Apache服务不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。

服务器

Nginx作为负载均衡服务:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。

处理静态文件,索引文件以及自动索引;打开文件描述符缓冲。

无缓存的反向代理加速,简单的负载均衡和容错。

FastCGI,简单的负载均衡和容错。

模块化的结构。包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter。如果由 FastCG或其它代理服务器处理单页中存在的多个 SSI,则这项处理可以并行运行,而不需要相互等待。

支持 SSL 和 TLSSNI。

代码

Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。Nginx有自己的函数库,并且除了zlib、PCRE和OpenSSL之外,标准模块只使用系统C库函数。而且,如果不需要或者考虑到潜在的授权冲突,可以不使用这些第三方库。

代理服务器

作为邮件代理服务:Nginx 同时也是一个非常优秀的邮件代理服务(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。

Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。

功能

支持操作系统

  • FreeBSD 3— 10 / i386; FreeBSD 5— 10 / amd64;

  • Linux 2.2— 4 / i386; Linux 2.6— 4 / amd64; Linux 3— 4 / armv6l, armv7l, aarch64;

  • Solaris 9 / i386, sun4u; Solaris 10 / i386, amd64, sun4v;

  • AIX 7.1 / powerpc;

  • HP-UX 11.31 / ia64;

  • Mac OS X / ppc, i386;

  • Windows XP, Windows Server 2003,Windows 10

结构与扩展

一个主进程和多个工作进程。工作进程是单线程的,且不需要特殊授权即可运行;

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 主要的英语站点是 http://sysoev.ru/en/;

英语文档草稿由 Aleksandar Lazic 完成。

HTTP基础功能

处理静态文件,索引文件以及自动索引;

反向代理加速(无缓存),简单的负载均衡和容错;

FastCGI,简单的负载均衡和容错;

模块化的结构。过滤器包括gzipping,byte ranges,chunked responses,以及 SSI-filter。在SSI过滤器中,到同一个 proxy 或者 FastCGI 的多个子请求并发处理;

SSL 和 TLS SNI 支持;

IMAP/POP3代理服务功能:

使用外部 HTTP 认证服务器重定向用户到 IMAP/POP3 后端;

使用外部 HTTP 认证服务器认证用户后连接重定向到内部的 SMTP 后端;

其他HTTP功能

基于名称和基于IP的虚拟服务器;

Keep-alive and pipelined connections support;保持活动和支持管线连接;

Flexible configuration;灵活的配置;

Reconfiguration and online upgrade without interruption of the client processing;重载配置,无间断程序升级;

Access log formats,bufferred log writing,and quick log rotation;访问日志格式,bufferred日志写,快速登录旋转;

3xx-5xx error codes redirection; 3xx的- 5xx错误代码重定向;

The rewrite module;重写模块;

Access control based on client IP address and HTTP Basic authentication;基于客户端IP地址访问控制和HTTP基本认证;

The PUT,DELETE,MKCOL,COPY and MOVE methods; 提交,删除,MKCOL,复制和移动方法;

FLV streaming;FLV视频流;

Speed limitation;速度限制;

Limitation of simultaneous connections or requests from one address.限制同个IP地址请求数量。

Embedded perl.嵌入式的Perl。

邮件代理服务器功能

用户重定向到IMAP/POP3后端使用外部HTTP认证服务器;

User authentication using an external HTTP authentication server and connection redirection to internal SMTP backend;用户身份验证使用外部HTTP认证服务器和连接重定向到内部的SMTP后端;

Authentication methods:验证方法:

POP3: USER/PASS,APOP,AUTH LOGIN/PLAIN/CRAM-MD5;的POP3:用户名/密码,的APOP,AUTH的LOGIN/PLAIN/CRAM-MD5;

IMAP: LOGIN,AUTH LOGIN/PLAIN/CRAM-MD5; IMAP的:登录,AUTH的LOGIN/PLAIN/CRAM-MD5;

SMTP: AUTH LOGIN/PLAIN/CRAM-MD5;的SMTP:AUTH的LOGIN/PLAIN/CRAM-MD5;

SSL support; SSL支持;

STARTTLS and STLS support. STARTTLS的和补充的支持。

认证方法

POP3: POP3 USER/PASS,APOP,AUTH LOGIN PLAIN CRAM-MD5;

IMAP: IMAP LOGIN;

SMTP: AUTH LOGIN PLAIN CRAM-MD5;

SSL 支持;

在 IMAP 和 POP3 模式下的 STARTTLS 和 STL支持。

版本发布

2012年08月22日,Nginx 1.3.5 开发版发布。

2012年09月12日,Nginx 1.3.6 开发版发布。

2012年12月11日,Nginx 1.2.6 稳定版发布

2013年02月12日,Nginx 1.2.7 稳定版发布

2013年02月19日,Nginx 1.3.13 开发版发布

2013年04月03日,Nginx 1.2.8 稳定版发布。

2013年04月16日,Nginx 1.3.16 开发者版本发布。

2013年04月24日,Nginx 1.4.0 稳定版发布。

2013年05月07日,Nginx 1.4.1 稳定版发布。

2013年05月07日,Nginx 1.5.0 开发版本发布。

2013年06月04日,Nginx 1.5.1 主版本发布。

2013年07月02日,Nginx 1.5.2 开发版发布。

2013年07月17日,Nginx 1.4.2 稳定版发布。

2013年07月30日,Nginx 1.5.3 开发版本发布。

2013年08月27日,Nginx 1.5.4 开发版本发布。

2013年09月17日,Nginx 1.5.5 开发版本发布。 

2015年10月27日,Nginx 1.9.6 主线版本发布。

2016年02月09日,Nginx 1.9.11 开发版本发布。

2016年07月26日,Nginx1.11.3 主线版本。

2016年10月11日,Nginx1.11.5 主线版本发布。

2016年10月18日,Nginx1.10.2 稳定版本发布。

2016年11月15日,Nginx1.11.6 主线版本发布。

2016年12月13日,Nginx1.11.7主线版本发布。

2016年12月27日,Nginx1.11.8主线版本发布。

2017年01月24日,Nginx1.11.9主线版本已经发布。

2017年06月27日,nginx-1.13.2主线版本发布

2017年07月11日,nginx-1.13.3主线版本发布 

2017年08月08日,nginx-1.13.4主线版本发布 

2017年09月05日,nginx-1.13.5主线版本发布 

2017年10月10日,nginx-1.13.6主线版本发布

2017年11月21日,nginx-1.13.7主线版本发布 

2017年12月26日,nginx-1.13.8主线版本发布

2018年02月20日,nginx-1.13.9主线版本发布 

2018年03月20日,nginx-1.13.10主线版本发布 

2018年04月03日,nginx-1.13.11主线版本发布 

2018年04月10日,nginx-1.13.12主线版本发布 

2018年04月17日,nginx-1.14.0 稳定版本发布 

2018年06月05日,nginx-1.15.0 主线版本发布

2018年07月03日,nginx-1.15.1 主线版本发布

2018年07月24日,nginx-1.15.2 主线版本发布 

2018年08月28日,nginx-1.15.3 主线版本发布

2019年06月25日,nginx-1.17.1 主线版本发布 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!