nginx WEB 应用

1.nginx介绍

nginx的基本特性

1、对静态资源高速高并发访问及缓存
2、可使用反向代理加速,并且可进行数据缓存
3、具有简单负载均衡、节点健康检查和容错功能
4、支持远程FastCGI服务的缓存加速
5、支持FastCGI、Uwsgi、SCGI、Memcache Server的加速和缓存
6、支持SSL、TLS、SNI
7、具有模块化的架构:过滤器包括gzip压缩、rangs支持、chunked响应、XSLT、SSI及图像缩放等功能。在SSI过滤中,一个包含多个SSI的页面,如果经由FastCGI或反向代理,可被并行处理。

它所具备的其他www服务特性

支持基于名字、端口、ip的多虚拟主机站点
支持Keepalive和pipelined连接
可支持简单方便灵活的配置和管理
支持修改nginx配置,并在代码上线时,可平滑重启,不中断业务访问
可自定义访问日志格式,临时缓冲写日志操作,快速日志轮询及通过rsyslog处理日志
可利用信号控制nginx进程
支持3xx-5xxHTTP状态码重定向
支持rewrite模块,支持URI重写及正则表达式匹配
支持基于客户端ip地址和HTTP基本认证的访问控制
支持PUT、DELETE、MKCOL、COPY、MOVE等特殊的HTTP请求方法
支持FLV流和MP4流技术产品应用
支持HTTP响应速率限制
支持同一ip地址的并发连接或请求数限制
支持邮件服务代理

面试时可能需要解答如下nginxHTTP服务器的特色及优点

支持高并发:能支持几万并发连接(特别是静态小文件业务环境)
资源消耗少:在3万并发连接下,开启10个nginx线程消耗的内存不到200MB
可以做HTTP反向代理及加速缓存,即负载均衡功能,内置对RS节点服务器健康检查功能,这相当于专业的Haproxy软件或LVS的功能
具备Squid等专业缓存软件等的缓存功能
支持异步网络I/O时间模型epoll

apache软件的特点

Apache2.2版本非常稳定强大,性能好。
prefork模式取消了进程开销
处理动态业务数据时,因关联到后端的引擎和数据库,瓶颈不在Apache上
高并发时消耗资源相对多一些
基于传统的select模型,高并发能力有限
支持扩展库,可以通过DSO、apxs方法编译安装额外的插件功能,不需要重新编译Apache
功能多,更稳定,更安全,插件也多
市场份额逐渐递减

1.2 nginx和其他web对比(epoll和select)

  处理静态小文件(小于1Mb),nginx比Apache和Lighttpd更有优势,处理动态文件时Apache更有优势,但是差距不大。这是因为处理动态数据的能力取决于PHP(java)和后端数据库的服务能力,也就是说瓶颈不在web服务器上,一般情况下普通的PHP引擎支持的并发连接参考值为300~1000,java引擎和数据库的并发连接参考值为300~1500。

为什么nginx总体性能比Apache高

    nginx使用最新的epoll和kqueue(freebsb)异步网络I/O模型,而Apache使用的是传统的select模型

   异步的安全性、稳定性没有同步高,中间容易被人窃取,用户收不到数据

select和epoll的释义:
1、select模型就像保姆照看一群孩子,会询问每个孩子是否要尿尿,有就带领去(尿尿比作网络I/O时间,时间复杂度是O(n))
2、epoll就是孩子要尿尿,自己主动去规定好的地方,然后保姆带领去,这样保姆只需要关心那个地方有没有孩子 (时间复杂度O(1))

表1 Apache select和nginx epoll技术对比

1.3 如何选择web

静态业务:

  若是高并发场景,尽量采用nginx或Lighttpd,首选nginx

动态业务:

  理论上采用nginx和Apache均可,为了避免相同业务服务软件多样化,增加维护成本

既有动态又有静态:

  选用nginx

猜你喜欢

转载自blog.csdn.net/qq_16142851/article/details/80107784