LNMP(Linux Nginx MySQL PHP) 是近三年的web服务组合,国内网站使用Nginx更多一些。
Nginx常用功能:
a、www web服务
b、负载均衡(反向代理)
c、web缓存
Nginx的优点:
0、配置简单,更灵活。
1、高并发同时处理的连接数多,静态1-2w
2、占用资源少。2W并发,开10个线程服务,内存几百兆的样子
3、功能种类比较多,(web,cache,proxy),功能多,但是每个功能都不是特别强。
4、支持epoll模型。使得Nginx可以支持高并发。
5、Nginx配合动态服务和apache有区别。
6、利用Nginx可以对IP限速。可以限制连接数。
LNMP的实现,架构
1、LAMP,php是模块。
2、LNMP,php是服务。
企业工作中如何选择:
Nginx的应用场合:
1、静态服务器(图片,视频服务,html,css,js,flv等)。并发:1-3w
国内两款静态服务器Nginx,lightted
2、动态服务,nginx + fastcgi方式运行php,jsp。处理动态是后端服务器撑不住。
竞争对手:apache+php,lightted + fcgi
3、反向代理,负载均衡。日PV2000W以下,都可以使用Nginx做代理。
竞争对手:haproxy ,F5,a10
4、缓存服务。
竞争对手:Squid,varnish。
常用web服务介绍
Apache
基于传统的select模型
2.2版本非常稳定强大,据官方说,其2.4版本性能超强
Prefork模式取消了进程创建开销,性能很高
处理动态业务时候,因为关联到后端的引擎和数据库,瓶颈不在Apache本身
高并发时候消耗系统性能会多一些。
扩展库,DSO安装方法,apxs
功能多,更稳定,更安全,插件也多。
Nginx
基于异步IO模型(epoll,kquene),性能强,能够支持上完并发
对小文件的支持很好,性能很高(限静态小文件)
代码优美,扩展库必须编译进主程序。
消耗系统资源比较低。
Lightted
基于异步IO模型,性能和Nginx相近
扩展库是SO模式,比Nginx要灵活
全球使用率比较低,安全性没有上面两个好
通过插件(mod_secdownload),可以实现文件URL地址加密。
性能对比:
处理静态小文件(小于1M),Nginx和lightted比apache更有优势。
处理纯动态文件,apache效率更高。Nginx在处理大文件和动态文件的时候,没有什么优势。
为什么Nginx的总体性能比Apache要高?
Nginx使用最新的epoll(linux 2.6内核),网络IO模型,而Apache则使用传统的select模型。目前Linux下能够承受高并发的Squid、Memcached都是采用epoll网络I/O模型。
选择Web服务器:
静态业务:高并发,采用nginx或lightted,根据自己的掌握程序或公司要求
动态业务:采用Nginx和Apache均可。
动态业务可以前端haproxy,根据页面元素的类型,向后转发相应的服务器进行处理。
既有静态,又有动态:Nginx或Apache,不要多选,要单选。
如果并发不是很多,对apache很熟悉,采用apache也是可以的。
满足需求的前提,先用,然后逐步完善。
最终建议:
对外的业务Nginx,对内的业务Apache。
Nginx虚拟主机:
1、基于域名,==> 应用:外部网站
2、基于端口,==> 应用:公司内部网站,外部网站的后台
3、基于IP(不完善)