- 论坛徽章:
- 27
|
本帖最后由 yifangyou 于 2012-06-22 12:26 编辑
一、Nginx作为轻量级的负载均衡器,它较适用于哪种场景中,它与之LVS/HAProxy的对比,其优势在哪里?
答:Nginx的负载策略有权重,backup模式,权重模式比较适合于同时有多个web服务器进行服务的场景,具有自动检测每个web服务器是否存活(依据的是超时时间)
backup模式是适合于高可用场景,一般是挂载两天web服务端,一主一备。
它与之LVS/HAProxy的对比的优势:
1)再加上nginx的url重新功能,甚至能够实现读写分离。
2)能够对请求URL或者内容进行决定分配到那台机器。
3) 具有自动检查web服务器是否存活,若是web服务器挂了,可以尝试请求下一个服务器,不会像lvs转发之后就不管了。若是web服务器恢复了,可以继续转发请求。
4)backup模式是nginx特有的,这样可以提供可用性。
5)nginx有缓存模块,这样请求不一定每次都去请求web服务器。
6)安装简单明了,不像lvs那样这么多模式,还要到各个web端配置虚拟ip;也不会对路由器和交换机有诸多要求;
7)插件非常多,具有支持代理,cache,redis各种插件
插件开发简单,可以根据自己需要自己开发自己的插件
二、Nginx作为高抗并发的Web软件,与传统的Apache相比较为有优势,大家一般会将其哪种场景中,它与Apache相对,其优势在哪里?
答:nginx的并发能力能够达到上万次请求每秒,
我一般是把它作为apache的替代品。
他比apache的优势:
1.并发量是apache的几倍或者十几倍,节省服务器数量;
2.负载轻,nginx是多线程,并且支持多核,事件驱动,负载基本上能够在1以下,apache 2.4据说也是模仿这种方式提高服务能力。
3.后端是代理+fcgi模式使之能够支持不同的语言,应用调用完全有语言自身完成。
三、Nginx作为Cache也越来越成熟了,与专业级的Squid/Varnish相比,大家更倾向于将其应用于哪种场景中,它与Squid/Varnish相比,优势又如何呢?
答:我主要用于网站的伪静态化,想我公司的web是cms系统,直接访问非常慢,于是我用nginx做为cache实际上是设定缓存过期时间非常长,除了第一次请求外,这样所有的请求都不会请求到后面的web服务器上,这样就是实现了静态化。
和squid/varnish相比,nginx的优势是
1.配置简单,不会像squid那样几千行的配置文件,而且有很多难懂的缓存算法
2.nginx可以配置成缓存没有过期时,不会去发请求检查web端是否过期,缓存过期完全在于nginx自身控制。
3.nginx有一个清除缓存的插件,安装完后很容易清除某个目录或者文件的缓存。
4.nginx结合自带的url重写功能能够支持负责的缓存。
|
|