apache

原创 2009年10月25日 16:06:00

apache

  

阿帕奇族

  Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。相传阿帕奇是一个武士,他英勇善战,且战无不胜,被印第安人奉为勇敢和胜利的代表,因此后人便用他的名字为印第安部落命名,而阿帕奇族在印第安史上也以强悍著称。
  

Apache基金会

  Apache软件基金会(也就是Apache Software Foundation,简称为ASF),是专门为运作一个开源软件项目的 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 Server

  Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。
  Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
  本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon.com、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。
  Apache的诞生极富有戏剧性。当NCSA WWW服务器项目停顿后,那些使用NCSA WWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache。
  Apache web服务器软件拥有以下特性:
  支持最新的HTTP/1.1通信协议
  拥有简单而强有力的基于文件的配置过程
  支持通用网关接口
  支持基于IP和基于域名的虚拟主机
  支持多种方式的HTTP认证
  集成Perl处理模块
  集成代理服务器模块
  支持实时监视服务器状态和定制服务器日志
  支持服务器端包含指令(SSI)
  支持安全Socket层(SSL)
  提供用户会话过程的跟踪
  支持FastCGI
  通过第三方模块可以支持Java Servlets
  如果你准备选择Web服务器,毫无疑问Apache是你的最佳选择。

Apache有名的几个项目介绍

  HTTP Server
  这个在前面的段落介绍过了,Apache已经是他的代号了
  ActiveMQ
  免费开源由java编写符合JMS1.1标准的消息中间件。
  另外,它也支持通过除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服务器

Apache的安装与配置说明

  [1][2]Apache 的安装无外乎两种方式: 源代码安装和DEB包安装。这两种安装类型各有特色,DEB包安装不需要编译,而源代码安装则需要先配置编译再安装,DEB包安装在一个固定的位置下,选择固定的模块,而源代码安装则可以让你选择安装路径,选择你想要的模块。本文主要介绍DEB安装方式。
  系统:GNU/Linux Debian/etch
  Apache当前版本: 2.0.55-4
  1、安装:
  使用以下命令安装:
  tony@tonybox:~$sudo aptitude update aptitude install apache2 apache2-utilstony@tonybox:~$ sudo /etc/init.d/apache2 starttony@tonybox:~$ sudo /etc/init.d/apache2 stoptony@tonybox:~$ sudo killall apache2tony@tonybox:/etc/apache2$ ls -ltony@tonybox:/etc/apache2/conf.d$ cat charsettony@tonybox:/etc/apache2$ cat ports.conf
  tony@tonybox:~$sudo
  其中apache2-utils提供了我们在配置维护过程中非常有用的一些工具
  安装完成后,可以使用下面的命令启动Apache 服务:
  停止Apache服务则是:
  也可以只接用 kill 命令强制杀死apache2进程
  如有需要, 可以通过rcconf来控制是否在系统启动是加载Apache 服务
  启动完成后打开浏览器, 使用URL http://localhost/ 来访问已经启动的Apache服务器, 服务器将会跳转到 http://localhost/apache2-default/, 向浏览器返回一个Apache安装成功的页面。
  注: 这取决于/etc/apache2/sites-available/default 配置文件中, 是否取消了
  RedirectMatch ^/$ /apache2-default/
  行的注释
  2、 配置文件说明
  在Debian下, 安装完成后, 软件包为我们提供的配置文件位于/etc/apache2目录下:
  total 72
  -rw-r--r-- 1 root root 12482 2006-01-16 18:15 apache2.conf
  drwxr-xr-x 2 root root 4096 2006-06-30 13:56 conf.d
  -rw-r--r-- 1 root root 748 2006-01-16 18:05 envvars
  -rw-r--r-- 1 root root 268 2006-06-30 13:56 httpd.conf
  -rw-r--r-- 1 root root 12441 2006-01-16 18:15 magic
  drwxr-xr-x 2 root root 4096 2006-06-30 13:56 mods-available
  drwxr-xr-x 2 root root 4096 2006-06-30 13:56 mods-enabled
  -rw-r--r-- 1 root root 10 2006-06-30 13:56 ports.conf
  -rw-r--r-- 1 root root 2266 2006-01-16 18:15 README
  drwxr-xr-x 2 root root 4096 2006-06-30 13:56 sites-available
  drwxr-xr-x 2 root root 4096 2006-06-30 13:56 sites-enabled
  drwxr-xr-x 2 root root 4096 2006-01-16 18:15 ssl
  其中
  apache2.conf
  为apache2服务器的主配置文件, 查看此配置文件, 你会发现以下内容
  # Include module configuration:
  Include /etc/apache2/mods-enabled/*.load
  Include /etc/apache2/mods-enabled/*.conf
  # Include all the user configurations:
  Include /etc/apache2/httpd.conf
  # Include ports listing
  Include /etc/apache2/ports.conf
  # Include generic snippets of statements
  Include /etc/apache2/conf.d/[^.#]*
  有此可见, apache2 根据配置功能的不同, 对配置文件进行了分割, 这样更利于管理
  conf.d
  下为配置文件的附加片断,默认情况下, 仅提供了 charset 片断,
  AddDefaultCharset UTF-8
  如有需要我们可以将默认编码修改为 GB2312, 即文件的内容为: AddDefaultCharset GB2312
  httpd.conf
  是个空文件
  magic
  文件中包含的是有关mod_mime_magic模块的数据, 一般不需要修改它。
  ports.conf
  则为服务器监听IP和端口设置的配置文件,
  Listen 80
  mods-available
  目录下是一些。conf和。load 文件, 为系统中可以使用的加载各种模块的配置文件, 而mods-enabled目录下则是指向这些配置文件的符号连接, 从配置文件apache2.conf 中可以看出, 系统通过mods-enabled目录来加载模块, 也就是说, 系统仅通过在此目录下创建了符号连接的mods-available 目录下的配置文件来加载模块。同时系统还提供了两个命令 a2enmod 和 a2dismod用于维护这些符号连接。这两个命令由 apache2-common 包提供。命令各式也非常简单: a2enmod [module] 或 a2dismod [module]
  sites-available
  目录下为配置好的站点的配置文件, sites-enabled 目录下则是指向这些配置文件的符号连接, 系统通过这些符号连接来起用站点 sites-enabled目录下的符号连接附有一个数字前缀, 如000-default, 这个数字用于决定启动顺序, 数字越小, 启动优先级越高。 系统提供了两个命令 a2ensite 和 a2dissite 用于维护这些符号连接。这两个命令由 apache2-common 包提供。
  /var/www
  默认情况下将要发布的网页文件应该置于/var/www目录下,这一默认值可以同过主配置文件中的DocumnetRoot 选项修改。
  注意:如果你在是windows下应用Apache服务器,并且已经安装IIS,那么在安装Apache时请注意给Apache换个端口来监听比如8080,否则Apache占用的端口会和IIS冲突,造成Apache服务器不能正常启动

Apache的在线升级

升级Apache到最新版本,本来并不复杂,但是因为涉及到不能停止现有的Apache实例的运行,因此要小心翼翼的做。 大致分成三步: 编译新的Apache, 配置新的Apache, ...
  • qq_36345367
  • qq_36345367
  • 2017年05月27日 17:11
  • 439

HTTP/Apache 错误代码汇总

http 状态码基本上可以分为 5 类: 1xx 为消息类,该类状态代码用于表示服务器临时回应。 100 Continue 表示初始的请求已经被服务器接受,浏览器应当继续发送请求的...
  • php_younger
  • php_younger
  • 2016年10月11日 15:47
  • 835

服务器架设笔记——Apache模块开发基础知识

本文简略介绍了Apache插件所涉及的基础知识。
  • breaksoftware
  • breaksoftware
  • 2015年02月18日 19:33
  • 3825

Apache组织一级开源项目清单

1.      HTTP Server: HTTP Server是目前最流行的HTTP服务器软件之一。其优势主要在于快速、可靠、可通过简单的API扩展,Perl/Python解释器可被编译到服务器中...
  • lky5387
  • lky5387
  • 2014年06月26日 13:10
  • 4817

Apache中的配置指令概述

 //本文是《Apache源代码全景分析》第二卷《体系结构和核心模块》中的第八章《配置文件管理》的草稿部分中,主要描述Apache中的指令概念,在后续的章节中我们将继续深入Apache中的配置文件的处...
  • tingya
  • tingya
  • 2006年09月25日 23:03
  • 13894

apache 页面缓存机制,图片 缓存 (mod_expires)

#LoadModule expires_module modules/mod_expires.so (去掉#号) 我把配置信息写到 .htaccess文件中 ExpiresActive...
  • u013791858
  • u013791858
  • 2015年12月11日 10:16
  • 1238

修改apache默认字符编码--在页面中显示乱码

apache打开网页乱码,修改apache默认字符集的方法如下: 打开apache配置文件httpd.conf,Windows下的apache配置文件路径一般为D:\Program Files\Ap...
  • tanzugan
  • tanzugan
  • 2012年01月04日 11:15
  • 13216

Linux下启动和停止apache服务

文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 本文使用的Linux系统为CentOS 7,下面将介绍apache服务的启动、关闭与设置。apache在Cen...
  • Quincuntial
  • Quincuntial
  • 2017年05月27日 18:28
  • 3655

apache参数详解

apache参数详解 Linux Apache Web 服务器终极教程作者:佚名 文章来源:internet                           Apache的主要特征是:  .  可...
  • lxholding
  • lxholding
  • 2007年09月26日 13:08
  • 1477

apache如何解决跨域资源访问

很多时候,大中型网站为了静态资源分布式部署,加快访问速度,减轻主站压力,会把静态资源(例如字体文件、图片等)放在独立服务器或者CDN上,并且使用独立的资源域名(例如res.test.com) 但是在实...
  • ownfire
  • ownfire
  • 2015年07月01日 10:40
  • 26983
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:apache
举报原因:
原因补充:

(最多只允许输入30个字)