Nginx介绍及企业web服务软件的选择

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(不完善)

更多内容请访问我的博客:程序员鼓励师