Nginx介绍

Nginx(发音同engine x)是一个网页服务器,它能反向代理HTTP, HTTPS, SMTP, POP3, IMAP的协议链接,以及一个负载均衡器和一个HTTP缓存。


作为HTTP服务软件的后起之秀,Nginx与它的老大哥Apache相比有很多改进之处。比如:

在性能上,Nginx占用的系统资源更少,能支持更多的并发连接(特别是静态小文件场景下),达到更高的访问效率;

在功能上Nginx不但是一个优秀的Web服务软件,还可以作为反向代理负载均衡及缓存服务使用;它类似于 LVS负载均衡及HAProxy等专业代理软件,又类似于Squid等专业缓存服务软件;

在安装配置上,Nginx更为方便、简单、灵活,可以说,Nginx是一个极具发展潜力的Web服务软件。

起初是供俄国大型的门户网站及搜索引擎Rambler(俄语:Рамблер)使用。此软件BSD-like协议下发行,可以在UNIX、GNU/Linux、BSD、Mac OS X、Solaris,以及Microsoft Windows等操作系统中运行。


特点:

Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。与旧版本(<=2.2)的Apache不同,nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑,削减了上下文调度开销,所以并发服务能力更强。整体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活。 在Linux操作系统下,nginx使用epoll事件模型,得益于此,nginx在Linux操作系统下效率相当高。同时Nginx在OpenBSD或FreeBSD操作系统上采用类似于epoll的高效事件模型kqueue。

Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。


与PHP的集成:

自PHP-5.3.3起,PHP-FPM加入到了PHP核心,编译时加上--enable-fpm即可提供支持。 PHP-FPM以守护进程在后台运行,Nginx响应请求后,自行处理静态请求,PHP请求则经过fastcgi_pass交由PHP-FPM处理,处理完毕后返回。 Nginx和PHP-FPM的组合,是一种稳定、高效的PHP运行方式,效率要比传统的Apache和mod_php高出不少。

PHP-FPM不支持Windows平台,由于没有fastcgi进程管理器管理php-cgi.exe,因此一旦php-cgi.exe崩溃退出,前端将失去响应,这时Nginx会返回“The page you are looking for is temporarily unavailable. Please try again later.”的错误信息。 因此在Windows上用Nginx和php-cgi.exe组合来运行PHP的方式并不可靠,稳定性有待提高。


Web服务器:

Apache、IIS、Nginx是互联网上最常用的Web服务器。


Nginx的重要特性

可针对静态资源高速高并发访问及缓存;

可使用反向代理加速,并且可进行数据缓存;

具有简单负载均衡、节点健康检查和容错功能;

支持远程FastCGI、Uwsgi、SCGI、Memcached Servers的加速和缓存;

支持SSL、TLS、SNI;

具有模块化的架构:过滤器包括gzip压缩、ranges支持、chunked响应、XSLT、SSI及图像缩放等功能。在SSI过滤器中,一个包含多个SSI的页面,如果FastCGI或反向代理处理,可被并行处理;

它具备的其他WWW服务特性:

支持基于名字、端口及IP的多虚拟主机站点;

支持Keep-alived和pipelined连接;

可进行修改Nginx配置,并且在代码上线时,可平滑重启,不中断业务访问;

可自定义访问日志格式,临时缓冲些日志操作,快速日志轮询及通过rsyslog处理日志;

可利用信号控制Nginx进程;

支持 3xx-5xx HTTP状态码重定向;

支持rewrite模块,支持URI重写及正则表达式匹配;

支持基于客户端IP地址和HTTP基本认证的访问控制;

支持PUT、DELETE、MKCOL、COPY及MOVE等较特殊的HTTP请求方法;

支持FLV流和MP4流技术产品应用;

支持HTTP响应速率限制;

支持同一IP地址的并发连接或请求数连接;

支持邮件服务器代理;

你可能感兴趣的:(Nginx介绍)