forliberty 2013-04-06
在互联网高速发展的今天,不同种类的网站大量涌现,每个人都在享受着网络服务所带来的便利。而创建自己个性化的网站的门槛不断降低,从事网站架设,这种当年的绝对“高科技”技术活,也从IT人的专利“沦落”到人人皆可的境地:随便安装一个windows的server版,使用自带的IIS就可以迅速创建一个说的过去的网站。
然而要架设一个符合长远发展要求的网站,就不是一件简单到每个人都可以胜任的事了。且不说建站需要掌握的各种语言:html、Javascript、VBscript、jsp、asp、java、c#……,就单单是选择合适的服务器软件就够让人头疼的。目前主要的服务器软件有:apache、IIS、tomcat、jboss、resin、weblogic、websphere……,该在搭建网站时,应该采用哪一款或者哪几款软件呢?
解答这个问题,首先需要对上述软件逐个分析,找出不同之处,然后分类,进而根据性能等因素进行排列,最后根据应用的场景和费用等选出其中最合适的。服务器软件主要可以分为应用服务器、http服务器等,而实际上的应用服务器又常常还有http服务器的功能,因此如果仅从分类的字面上讲各个服务器软件之间的区别,很难理解;而性能在不同的功能上可能差异很大;应用的场景和费用就更是因人而异了。下面将在介绍每一个软件的同时,解析服务器种类的不同特性。
apache:apache(阿帕奇)的具体介绍可以参看apache的网站(http://www.apache.org/),或者在网上随便搜搜吧。apache是世界使用排名第一的web服务器软件;它可以运行在几乎所有广泛使用的计算机平台上;它是开源的,可以免费用于商业应用;它的运行超级稳定;它的效率非常之高……。可能apache仅有的不足是,它本身仅提供html静态页面的功能,不能支持jsp、java servlet、asp等功能,但通过同其他应用服务器一起工作或添加插件来支持。(稳定高效,通常需要与其他服务器软件或插件协同工作)
tomcat:tomcat是Apache软件基金会Jakarta项目中的一个核心项目。它是开源的,可以免费用于商业应用;支持servlet/jsp,它还能处理html页面;运行时占用的系统资源小,扩展性好。但是它也有不少缺点及不足:运行不够稳定,支持的并发连接数不够高,处理html时的效率不如apache,不能处理EJB等。(小巧精悍,适用于小型网站,后台开发语言为java的开发者在开发时使用)
jboss:jboss目前属于Redhat公司。它是开源的,使用LGPL,可以在商业应用中免费使用;支持EJB;需要较小的资源就可以运行。其核心服务不包括servlet/jsp的web容器,有集成了tomcat的版本,并对tomcat进行了优化。(支持EJB的优化版tomcat)
resin:resin是Caucho公司的产品。resin最突出的是它的性能非常高效,连html页面的效率也直追apache;支持servlet/jsp,EJB。虽然resin是开源的,不过有两种lisence:GPL和商用lisence,可以在GPL下免费使用,但注意商用的是要交钱的。(高效全功能的轻型服务器软件)
weblogic:weblogic是bea公司出品的一款应用服务器软件。全面支持多种功能标准,包括EJB,servlet/jsp,html等;出色的集群技术,极高的可扩展性;服务稳定;……。weblogic不是一款开源的软件,虽然存在免费试用等,但它主要的应用目标为大型商业应用,而这种应用需要高额的license费用。(技术上没得说,不过是商用服务器软件,适合大型商业应用)
websphere:websphere是IBM旗下的一款应用服务器软件。与weblogic相似,同为商业软件,同具有稳定、高效,支持多种应用……。也是需要高额的费用,适于大型商业应用;有Community Edition版本,是开源的。(如果有IBM其他配套产品,大型商用考虑使用)
IIS:IIS(Internet Information Services)是microsoft公司的服务器软件。IIS与上面介绍的服务器软件完全不同,它是在windows server(2000/2003/2008……)平台上免费附加的,买了windows就可以免费使用IIS了,开源就别想了;与windows平台紧密结合在一起,支持html和asp,aspx等。既然是微软的产品,自然只能在windows平台上,……。(如果是只用windows系统,想支持asp的就用它吧)
介绍完了各个软件的特点,结合实际的应用,就可以选出真正适合自己的服务器软件。这里再给出几个常见应用的搭配:
1. 如果操作系统是windows系统,且想使用asp,.net等应用的,后台开发使用c#语言的,II;
2. 如果仅需要展示html页面,而不要其他功能,apache;
3. 如果是在开发时使用或者是一般小型应用,需要支持jsp/servlet,而又不需要EJB的,tomcat;
4. 需要支持jsp/servlet,不需要EJB,有希望提高服务器的效率和稳定性的,apache+tomcat;
5. 需要支持jsp/servlet/EJB,而又想免费的,apache+jboss(包含tomcat的版本);
6. 需要支持jsp/servlet/EJB,又可以花点小钱的,resin(实在认为有必要,可以考虑resin+apache);
7. 大型商用,可以支付较高费用,weblogic(websphere可选);
8. 大型商用,可以支付较高费用,且有其他IBM相关功能服务的,websphere。