apache

apache

目录导航

Apache基金会

  Apache软件基金会(也就是Apache Software Foundation,简称为ASF),是 Apache基金会logoApache基金会logo专门为运作一个开源软件项目的 Apache 的团体提供支持的非盈利性组织,这个开源软件项目就是 Apache 项目。这个组织把自己作为有着相同目标的开发者与用户的团体,而不是简单的共享在一个服务器上的一组项目的组织团体。在它所支持的 Apache 项目与子项目中,所发行的软件产品都遵循 Apache许可证(Apache License)。

  Apache软件基金会(ASF)正式创建于1999年,它的创建者是一个自称为“Apache 组织”的群体。这个“Apache 组织”在1999年以前就已经存在很长时间了,这个组织的开发爱好者们聚集在一起,在美国伊利诺斯大学超级计算机应用程序国家中心(National Center for Supercomputing Applications,简称为NCSA)开发的 NCSA HTTPd 服务器的基础上开发与维护了一个叫 Apache 的 HTTP服务器。

  最初 NCSA HTTPd 服务器是由 Rob McCool 开发出来的,但是它的最初开发者们逐渐对这个软件失去了兴趣,并转移到了其他地方,造成了没有人来对这个服务器软件提供更多的技术支持。因为这个服务器的功能又如此强大,而代码可以自由下载修改与发布,当时这个服务器软件的一些爱好者与用户开始自发起来,互相交流并分发自己修正後的软件版本,并不断改善其功能。为了更好进行沟通,Brian Behlendorf 自己建立了一个邮件列表,把它作为这个群体(或者社区)交流技术、维护软件的一个媒介,把代码重写与维护的工作有效组织起来。这些开发者们逐渐地把他们这个群体称为“Apache 组织”,把这个经过不断修正并改善的服务器软件命名为 Apache 服务器(Apache Server)。

  这个命名是根据北美当地的一支印第安部落而来,这支部落以高超的军事素养和超人的忍耐力着称,19世纪後半期对侵占他们领土的入侵者进行了反抗。为了对这支印第安部落表示敬仰之意,取该部落名称(Apache)作为服务器名。但一提到这个命名,这里还有流传着一段有意思的故事。因为这个服务器是在 NCSA HTTPd 服务器的基础之上,通过众人努力,不断地修正、打补丁(Patchy)的产物,被戏称为“A Patchy Server”(一个补丁服务器)。在这里,因为“Patchy”与“Apache”是谐音,故最後正式命名为“Apache Server”。

  后来由于商业需求的不断扩大,以 Apache HTTP 服务器为中心,启动了更多的与 Apache 项目并行的项目,比如mod_ perl、PHP、Java Apache等等。随着时间的推移、形势的变化,Apache软件基金会的项目列表也不断更新变化中--不断的有新项目启动,项目的中止以及项目的拆分与合并。比如一开始,Jakarta 就是为了发展 JAVA 容器而启动的 Java Apache 项目,後来由于太阳公司(SUN)的建议,项目名称变为 Jakarta 。但当时该项目的管理者也没有想到 Jakarta 项目因为 JAVA 的火爆而发展到如今一个囊括了众多基于 JAVA 语言开源软件子项目的项目。以至後来,不得不把个别项目从 Jakarta 中独立出来,成为 Apache软件基金会的顶级项目,Struts 项目就是其中之一。

  最近,为了避免 SCO 与 UNIX 开源社区之间的发生纠纷降临在 Apache 软件基金会(ASF)身上。Apache软件基金会(ASF)里面开始采取一些措施,让众多的项目进行更多协调的、结构化管理,并保护自己的合法利益,避免一些潜在的合乎法律的侵犯(potential legal attacks)。

  主要成果:HTTP Server,Ant,DB,iBATIS,Jakarta,Logging,Maven,Struts,Tomcat,Tapestry等等。Apache有名的几个项目介绍

  HTTPServer

  这个在前面的段落介绍过了,Apache已经是他的代号了

Subversion

   Subversion已经正式由Apache接管。

  ActiveMQ

  免费开源由java编写符合JMS1.1标准的消息 ActiveMq管理界面ActiveMq管理界面中间件。

  另外,它也支持通过除java语言外的语言的使用

  Ant

  这个太出名了。标准的批处理工具。是一套基于java的程序打造工具

  Commons

  一些常用的工具类库,包括common-pool,dbcp,fileupload,Common-beans等。

  Excalibur

  它的主要产品是一个由java写成的,名字叫做Fortress(要塞) 的轻量级的可嵌入式反向控制容器。

  iBATIS

  并入的一个项目,是ORM的一个很流行的工具

  Geronimo

  是Apache软件基金会为了创造一个兼容j2ee的容器,而整理出来的一个新成果

  Jakarta

  许多Java子项目的集成,tomcat,ant等就是从这里孵化出去的。

  James

  是一套用java开发的邮件、新闻组、消息服务器。它使用的avalon组件框架。目前支持 SMTP, POP3 和 NNTP 很快也会支持 IMAP

  Logging

  基于java的可靠,快速,扩展性强的日志工具

  Maven

  是一套java开发的工程综合管理工具。它基于工程对象模型(POM)的理念

  Portals

  门户产品

  Struts

  一套通过servlets和jsp来搭建web应用的MVC框架

  Tomcat 用量最大的免费的Java服务器

   [1][2] Hadoop

  现今最为著名的大数据神器,包括分布式存储和计算框架。

  

apache 虚拟主机功能介绍:

  1、核心的增强

  Unix线程

  在有POSIX线程支持的Unix系统上, apache虚拟主机现在可以运行在混合多进程,多线程模式。这一改进改善了很多(但不是全部)配置的可扩缩性。

  新的构架系统

  构架系统已经对原来基于autoconf和libtool上的草稿进行了重写。这使得Apache的配置系统与其他包的配置系统更加相似。

  

  多协议支持

  apache虚拟主机现在已经拥有了能够支持伺服多协议的底层构造。mod_echo就是作为示例的成果。

  对非Unix平台更好的支持

  Apache 2.0在诸如BeOS,OS/2和Windows等非Unix平台上有了更好的速度和稳定性。随着平台特定的multi-processing modules (MPMs)和Apache Portable Runtime (APR)的引入,Apache在这些平台上的指令由它们本地的API指令实现。避免了以往使用POSIX模拟层造成的bug和性能低下。

  新的Apache API

  2.0中模块的API进行了重大改变。很多1.3中模块排序/模块优先级的问题已经不复存在了。2.0自动处理了很多这样的问题,模块排序现在用per-hook的方法进行,从而拥有了更多的灵活性。而且,新的调用被加入以在避免修改Apache服务器核心的前提下提供额外的模块容量。

  

  IPv6支持

  在所有能被Apache Portable Runtime库提供IPv6支持的系统上,Apache默认获得IPv6侦听套接字。另外,Listen, NameVirtualHost和VirtualHost 指令支持了IPv6的数字形地址字串(比如:“Listen [fe80::1]:8080”)。

  滤过

  apache虚拟主机的模块现在可以写成过滤器的形式。当内容流经过它到服务器或从服务器到达的时候进行操作。举例来说,这将使使用mod_include中的INCLUDES过滤器将CGI脚本的输出解析为服务器端包含指令成为可能。mod_ext_filter允许外部程序充当过滤器的角色,就象用CGI程序做处理器一样。

  多语种错误回报

  返回给浏览器的错误信息现在已经用SSI文档实现了多语种化。管理员可以利用此功能进行定制以达到观感的一致。

  

  简化了的配置

  很多易混淆的配置项已经进行了简化。经常产生混淆的Port和BindAddress配置项已经取消了;只有Listen选项现在用于IP地址的绑定;ServerName配置项中指定的服务器名和端口仅用于转向和虚拟机的辨识。

  

  本地Windows NT Unicode支持

  Windows NT上的Apache 2.0现在使用utf-8标准来进行文件名的解析。这个操作直接转换成底层的Unicode文件系统,由此为所有以Windows NT(包括Windows 2000和XP)为基础的安装提供了多语言支持。这一支持目前尚未涵盖Windows 95, 98 or ME系统,因为它们仍使用机器本地的代码页进行文件系统的操作。

  

  正则表达式库更新

  apache虚拟主机包括了Perl兼容正则表达式库(PCRE)。所有的正则表达式现在都使用了更为强大的Perl 5的语法。

  2、模块的增强

  mod_ssl

  Apache 2.0中的新模块。此模块是一个面向OpenSSL提供的SSL/TLS加密协议的一个接口。

  mod_dav

  Apache 2.0中的新模块。此模块继承了HTTP分布式发布和版本控制规范,用于发布、得到web内容。

  mod_deflate

  Apache 2.0中的新模块。此模块允许支持此功能的浏览器请求页面内容在发送前进行压缩,以节省网络资源。

  mod_auth_ldap

  Apache 2.0.410中的新模块。此模块允许使用LDAP数据库存储HTTP基础认证所需的证书。随之而来的另一个模块:mod_ldap ,则提供了连接池和结果的缓冲。

  mod_auth_digest

  利用共享内存实现了了额外的跨进程的session缓冲支持。

  mod_charset_lite

  Apache 2.0中的新模块。这个试验模块允许针对字符集的转换和记录。

  mod_file_cache

  Apache 2.0中的新模块。这个模块包含了Apache 1.3中mod_mmap_static模块的功能,另外进一步增加了缓冲能力。

  mod_headers

  此模块在Apache 2.0中更具灵活性。它现在可以更改mod_proxy需用的请求headers,而且它能有条件的设置回复headers。

  mod_proxy

  代理模块已经被完全重写以充分利用新的过滤器结构的优势,从而实现一个更为可靠的HTTP/1.1兼容的代理模块。另外,新的<Proxy>配置部分提供了更具可读性(而且更快)的代理站点控制; 重载<Directory "proxy:...">配置的方法已经不再支持了。这个模块现在依照协议支持分为proxy_connect, proxy_ftp和proxy_http三个部分。

  mod_negotiation

  加入一个新的ForceLanguagePriority指令用于保证所有情况下客户端都收到同一个文档,取代了不可接受的或多选择的回应。另外,negotiation和MultiViews算法已经进行了优化以提供更完美的结果,还有,提供了包括文档内容的新型类型图。

  mod_autoindex

  经自动索引后的目录列表现在可被配置为使用HTML表格以达到更清晰的格式,而且允许更为细化的排序控制,包括版本排序和通配符滤过目录列表。

  mod_include

  新的指令集允许修改默认的SSI元素的开始和结束标签,而且允许以主配置文件里的错误提示和时间格式的配置取代SSI文档中的相应部分。正则表达式(现在已基于Perl的正则表达式语法)的解析和分组结果可以用mod_include的变量$0 .. $9取得。

  mod_auth_dbm

  现在在AuthDBMType的规策下支持多种类似DBM的数据库。

改变IT世界的11大Apache开源技术:

Apache HTTP服务器项目

  Apache HTTP服务器项目主要致力于为现代操作系统开发和维护开源的HTTP服务器,其中包括Unix和Windows NT。这个项目的主要目标是提供一个可以与当前的HTPP标准同步提供安全、高效和可扩展的服务器的HTTP服务。

  自1996年4月以来,Apache就变成了互联网上最流行的Web服务器。

  主要用户群:连续13年,Apache HTTP服务器都是全球Web服务器的领军者,为1.13亿个网站提供服务。

Apache Tomcat

  Apache Tomcat是一个可以执行Java Servlet和JavaServer网页技术的开源软件。Apache和Tomcat是相对独立的,用户可以通过Apache访问Tomcat资源,反之亦然,二者可以在同一台服务器上。

  Apache Tomcat是由全世界各地的最佳开发者合力研发而来的,是一款非常优异的开源软件。

  用户群:Tomcat推动了很多不同行业的大型的、关键的Web应用程序的发展,其中包括ETrade、沃尔玛、天气频道以及EMC等。

Apache Lucene

  Apache Lucene是一个高性能、全功能的文字搜索引擎图书馆,是由Java语言编写的。Apache

  Lucene适用于任何需要全文字搜索的应用程序,特别是跨越平台。一开始,Lucene是由Java语言编写的,目前已经被移植到其他的语言,其中包括

  Delphi、Perl、C#、C++、Python、Ruby和PHP等。

  用户群:苹果在线零售店、CNET、Netflix、维基百科、Yelp、Comcast、LinkedIn、The

  Smithsonian、多个政府机构(FDA、DOD等)、Technorati、互联网档案馆(例如AOL黄页的上下文搜索等)。

Apache Struts

  Apache Struts是一个用于开发Java EE Web应用程序的开源Web应用程序框架。Apache Struts使用和扩展Java Servlet

  API去鼓励开发者采用模型视图控制器(MVC)构架。

  用户群: IRS、波士顿环球报、大赦国际、Sears、Alamo Car Rental、National Car Rental、Travelocity等等。

Apache Geronimo

  Apache Geronimo是Apache

  软件基金会的开放源码J2EE服务器,它集成了众多先进技术和设计理念。这些技术和理念大多源自独立的项目,配置和部署模型也各不相同。

  Geronimo项目的目标就是产生一个服务器运行时间框架,将最好的开源替代品汇集到一个统一、易用的模型中,去满足开发人员和系统管理员的需求。

  用户群:AMD、Chariot Solutions、IBM、Virtuas等。

Apache Ant

  Apache

  Ant是由Apache软件基金会所提供的一个基于Java的开发工具,它是将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。

  用户群:大多数的Java设计都被用于管理大量信息流,例如纽约州就使用Apache Ant去管理美国最大的青年计划,每天可以实时更新超过25万学生的记录。

Apache Cocoon

  Apache Cocoon是一个基于Spring框架的围绕分离理念建立的构架,在这种框架下的所有处理都被预先定义好的处理组件线性连接起来,能够将输入和产生的输出按照流水线顺序处理。

  用户群:Apache Lenya、Daisy CMS、Hippo CMS、Mindquarry等等,Apache

  Cocoon通常被作为一个数据抽取、转换、加载工具或者是系统之间传输数据的中转站。

Apache SpamAssassin

  SpamAssassin是一个由Apache开发的一个著名的反垃圾引擎,邮件系统完整的集成了SpamAssassin反垃圾引擎。

  SpamAssassin中包含了各种各样的垃圾邮件监测技术,其中包括基于DNS和checksum的垃圾邮件监测、Bayesian过滤、外部程序、黑名单和在线数据库等。

  用户群:SpamAssassin被数以千计的独立开发商和用户所采用,并被作为数个商业产品的主要成分.\

Apache Axis\

  Apache Axis是一个基于SOAP应用的框架,核心是一个SOAP处理器,用于开发包括客户端,服务器端,SOAP Gateway等各种应用。

  用户群:WSO2、MuleSource IBM、Progress Software等。

Apache Logging Services

  Apache Logging Services项目主要是为了提供应用程式除错以及监督的日志登录服务。

  Apache Logging Services项目的产品包括三个日志登录框架,分别为log4j for Java、log4cxx for

  C++以及log4net for the Microsoft .NET framework。

  Apache Logging Services还被应用于日志查看器和分析工具Chainsaw中。

  用户群:Apache Logging在Java开发中无处不在。

Apache Commons

  Commons是一个主要专注于可再用Java组件所有方面的Apache项目。

  Apache Commons项目由3个部分组成:

  *The Commons Proper—可再用Java组件的贮存处;

  *The Commons Sandbox—Java组件的开发工作区;

  *The Commons Dormant—沙盒组件的贮存库。

  用户群:亚马逊Web服务、谷歌。

相关百科
返回顶部
产品求购 求购