主流服务器apache、IIS、tomcat、jboss、resin、weblogic、websphere的区别

本文主要是介绍主流服务器apache、IIS、tomcat、jboss、resin、weblogic、websphere的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文转载自:http://www.haogongju.net/art/1921651

在互联网高速发展的今天,不同种类的网站大量涌现,每个人都在享受着网络服务所带来的便利。而创建自己个性化的网站的门槛不断降低,从事网站架设,这种当年的绝对“高科技”技术活,也从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。

项目实战地址 :   http://zz563143188.iteye.com/blog/1825168 资料下载地址:  http://pan.baidu.com/share/link?share

这篇关于主流服务器apache、IIS、tomcat、jboss、resin、weblogic、websphere的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1045573

相关文章

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

Apache Ignite缓存基本操作实例详解

《ApacheIgnite缓存基本操作实例详解》文章介绍了ApacheIgnite中IgniteCache的基本操作,涵盖缓存获取、动态创建、销毁、原子及条件更新、异步执行,强调线程池注意事项,避免... 目录一、获取缓存实例(Getting an Instance of a Cache)示例代码:二、动态

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶

SpringBoot改造MCP服务器的详细说明(StreamableHTTP 类型)

《SpringBoot改造MCP服务器的详细说明(StreamableHTTP类型)》本文介绍了SpringBoot如何实现MCPStreamableHTTP服务器,并且使用CherryStudio... 目录SpringBoot改造MCP服务器(StreamableHTTP)1 项目说明2 使用说明2.1

JAVA覆盖和重写的区别及说明

《JAVA覆盖和重写的区别及说明》非静态方法的覆盖即重写,具有多态性;静态方法无法被覆盖,但可被重写(仅通过类名调用),二者区别在于绑定时机与引用类型关联性... 目录Java覆盖和重写的区别经常听到两种话认真读完上面两份代码JAVA覆盖和重写的区别经常听到两种话1.覆盖=重写。2.静态方法可andro

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域

MyBatis中$与#的区别解析

《MyBatis中$与#的区别解析》文章浏览阅读314次,点赞4次,收藏6次。MyBatis使用#{}作为参数占位符时,会创建预处理语句(PreparedStatement),并将参数值作为预处理语句... 目录一、介绍二、sql注入风险实例一、介绍#(井号):MyBATis使用#{}作为参数占位符时,会

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期