haoxun0 2009-04-27
题记:
nginx,resin,squid,lighttpd 这四者之间没有直接的关联;放到一起仅仅是我个人想总结一下自己的知识而已,并无他意!
1 Nginx : http://nginx.net/
一般,大家都用Apache;非一般情况,大家都不用Apache; 而这个用什么的问题完全取决于你的应用需求!
下段内容摘自《Niginx应用技术指南》 总结V1.5 Freeke 整理于 2008-12-12
“
一、Nginx 基础知识
1、简介
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。尽管还是测试版,但是,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。更多的请见官方wiki: http://wiki.codemongers.com/NginxChs2、Nginx的优点
Nginx做为HTTP服务器,有以下几项基本特性: 1.处理静态文件,索引文件以及自动索引;打开文件描述符缓冲. 2.无缓存的反向代理加速,简单的负载均衡和容错.3、FastCGI,简单的负载均衡和容错.
4、模块化的结构。
包括gzipping, byte ranges, chunked responses, 以及 SSI-filter等filter。如果由FastCGI或其它代理服务器处理单页中存在的多个SSI,则这项处理可以并行运行,而不需要相互等待。5、支持SSL和TLSSNI.
Nginx专为性能优化而开发,性能是其最重要的考量, 实现上非常注重效率 。它支持内核Poll模型,能经受高负载的考验, 有报告表明能支持高达 50,000 个并发连接数。。。。
”
2 Resin http://www.caucho.com/
说到 Resin,就得提一次java的常用WEB服务器:
(1 商业成品,如IBM WebSphere ,BEA WebLogic ... ...以及SUN的相关产品 ; 这些产品因为是商业的,所以有着良好的服务和支持,非常适合实施阶段使用;但他们往往需要配合相关的开发环境才鼻尖适合开发阶段的开发与调试
(2 Tomcat,Resin,Orion,Jetty... 这一类的 ,一般在部署时配合Apache来完成
(3 JBOSS 相关的
Resin是一个开源的高性能的JAVA、PHP服务器,负载平衡功能增加了稳定性。Caucho的Quercus技术是可靠的100%JAVA实现的PHP引擎,这样就允许开发者可以把PHP的灵活性和JAVA的稳定性结合起来。
①专业版提供了快速的Servlet和JSP引擎,包括代理缓存、增强的JNI性能,分布式会话负载平衡提供了坚固的可靠性;
②开源版在GPL协议下提供了JSP、Servlet和EJB功能;
③Quercus是一个开源的java实现的PHP5语言;
④Caucho开发了两个小的快速的HTTP服务协议,Hessian是一个轻量级的自描述的RPC协议。Hessian现在包含了Java,PHP,Python,C++,andC#实现。
网址 http://www.caucho.comResin强调使用XML技术,跟tomcat相比,其编码问题处理得很好。
至于Resin的基本配置,以及与Apache的整合,与tomcat的流程基本类似,只要参考文档就可以完成。
3 Squid http://www.squid-cache.org/
对于Web用户来说,Squid是一个高性能的代理缓存服务器,可以加快内部网浏览Internet的速度,提高客户机的 访问命中率。Squid不仅支持HTTP协议,还支持FTP、gopher、SSL和WAIS等协议。和一般的代理缓存软件不同, Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。 Squid将数据元缓存在内存中,同时也缓存DNS查寻的结果,除此之外,它还支持非模块化的DNS查询,对失败的请求 进行消极缓存。Squid支持SSL,支持访问控制。由于使用了ICP,Squid能够实现重叠的代理阵列,从而最大限度的 节约带宽。 Squid由一个主要的服务程序Squid,一个DNS查询程序 dnsserver,几个重写请求和执行认证的程序,以及几个 管理工具组成。当Squid启动以后,它可以派生出指定数目的dnsserver进程,而每一个dnsserver进程都可以执行 单独的DNS查询,这样一来就大大减少了服务器等待DNS查询的时间。 Squid的另一个优越性在于它使用访问控制清单(ACL)和访问权限清单(ARL)。访问控制清单和访问权限清单通过阻止 特定的网络连接来减少潜在的Internet非法连接,可以使用这些清单来确保内部网的主机无法访问有威胁的或不适宜 的站点。
Squid is a caching proxy for the Web supporting HTTP, HTTPS, FTP, and more. It reduces bandwidth and improves response times by caching and reusing frequently-requested web pages. Squid has extensive access controls and makes a great server accelerator. It runs on most available operating systems, including Windows and is licensed under the GNU GPL.
PS: Varnish 顺便提一下这个东西
Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang 使用3台Varnish代替了原来的12台Squid,性能比以前更好。
Varnish 的作者Poul-HenningKamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多。在1975年时,储存媒介只有两种:内存与硬盘。但现在计算机系统的内存除了主存外,还包括了CPU内的L1、L2,甚至有L3快取。硬盘上也有自己的快取装置,因此SquidCache自行处理物件替换的架构不可能得知这些情况而做到最佳化,但操作系统可以得知这些情况,所以这部份的工作应该交给操作系统处理,这就是Varnish cache设计架构。
可以参考这个网站的一些文章: http://www.lamppr.com/
4 lighttpd http://www.lighttpd.net/
Security, speed, compliance, and flexibility -- all of these describe lighttpd (pron. lighty)which is rapidly redefining efficiency of a webserver; as it isdesigned and optimized for high performance environments. With a smallmemory footprint compared to other web-servers, effective management ofthe cpu-load, and advanced feature set (FastCGI, SCGI, Auth,Output-Compression, URL-Rewriting and many more) lighttpd is theperfect solution for every server that is suffering load problems. Andbest of all it's Open Source licensed under the revised BSD license.
貌似今年来lighttpd很流行; lighttpd和apache一样是开源的,与apache相比,虽然功能不及apache完善,稳定性也不如apache,但是,不管是服务静态页面,还是服务动态内容(CGI,PHP),它都比apache快,用于ad banner之类的WEB服务器是最恰当不过了