请输入您要查询的百科知识:

 

词条 Apache
释义 Apache

Apache是世界排名第一的Web服务器,世界上50%以上的Web服务器在使用Apache。1995年4月,最早的Apache(0.6.2版)由Apache Group公布发行。Apache Group是一个完全通过Internet进行运作的非盈利机构,由它来决定ApacheWeb服务器的标准发行版中应该包含哪些内容。准许任何人修改隐错,提供新的特征和将它移植到新的平台上,以及其它的工作。当新的代码被提交给Apache Group时,该团体审核它的具体内容,进行测试,如果认为满意,该代码就会被集成到Apache的主要发行版中。

§ 历史

Apache 起初由伊利诺伊大学香槟分校的国家超级计算机应用中心(NCSA)开发。此后,Apache Httpd被开放源代码团体的成员不断的发展和加强。Apache Http网站服务器拥有牢靠可信的美誉,已经在全球超过半数的网站中被使用-特别是几乎所有最热门和浏览量最大的网站。比方说,维基百科网站服务器就是使用Apache的。

刚开始发展时,Apache只是Netscape网页服务器(现在是Sun ONE)之外的开放源代码选择之一。慢慢地,它开始在功能和速度超越其他基于Unix的HTTP服务器。到了Apache 2.x的时代,实际效率又比Apache 1.x更快,2.x比1.x能同时服务更多的网页连接数。

1996年4月以来,Apache一直是Internet上最流行的HTTP服务器:1999年5月它在57%的网页服务器上运行,到了2005年7月这个比例上升到了69%。在2005年11月最风光的时候达到接近70%的市占率,不过在部份拥有大量域名的主机域名商转换为微软IIS平台后,Apache市占率近年来体现些微下滑。同时搜索引擎巨擘Google自己的网页服务器平台GWS推出后(也可说是一种修改版的Apache[2]),再加上nginx、Lighttpd等轻量化网页服务器软件在市场上有一些能见度,这些因素都反应在整体网页服务器市占率的消长,Apache的市占率就随之滑落。根据en:Netcraft在2009年2月的最新统计数据,Apache的市占率已经降为49.41%,IIS降为34%,GWS 8.39%,nginx 2.95%。尽管如此,Apache仍旧是当前互联网市场上,市占率最高的网页服务器软件。[3]

§ 命名

作者宣称因为Apache这个名字好记,所以才在最初选择它,但是流传最广的解释是(也是最显而易见的):这个名字来自于一个事实:当Apache在1995年初开发的时候,它是由当时最流行的HTTP服务器NCSA HTTPd 1.3 的代码修改而成的,因此是“一个修补的(a patchy)”服务器。然而,在Apache服务器官方网站的FAQ中是这么解释的:“Apache这个名字是为了纪念名为Apache的美洲原住民印第安人的一支,众所周知他们拥有高超的作战策略和无穷的耐性”。无论如何,Apache 2.x 分支不包含任何 NCSA 的程序代码。

§ 特性

ApacheApache的特性:

1、几乎可以运行在所有的计算机平台上。

2、支持最新的HTTP/1.1协议。

3、简单而且强有力的基于文件的配置(HTTPD.CONF)。

4、支持通用网关接口。

5、支持虚拟主机。

6、支持HTTP认证。

7、集成PERL。

8、集成的代理服务器。

9、可以通过WEB浏览器监视服务器的状态,可以自定义日志。

10、支持服务器端包含命令(SSI)。

11、支持安全SOCKET层(SSL)。

12、具有用户会话过程的跟踪能力。

13、支持FASTCGI。

14、支持JAVASERVLETS。

§ 参数

Apache1、获得Apache:获得apache源代码最方便的方法是到http://www.apache.org,选择最新的版本。然后,tarxvzfapache_x.x.xx.tar.gz;

2、编译Apache在src目录下./configure可用./configure--help|less得到帮助,make,makeinstall,install;

3、apache的启动和关闭sbin/apachectlstartsbin/apachectlstopsbin/apachectlrestart(重起);

4、一些模块介绍:下列的组模块令和组文件的基本的验证。auth-anon使用匿名的FTP-styleusernames和口令。auth-dbm使用Berkeleydb文件存储usernames,口令,和组信息。如果你有很多usernames并关心性能,这是很有用的。digest使用HTTP文摘认证,这比基本认证更安全。expire模块让你定制Expire过期时间;

5、Apache1.3的缺省目录布局是:./bin服务器二进制,apachectl原本./confApache配置文件./include/apacheApache标题文件./libexec共用的对象文件./manman页./sbin服务器二进制,apachectl原本,logrotator./cgi-bin缺省CGI原本/二进制的目录./share/htdocs缺省文件根./htdocs/manualApache手册./share/icon包含各种图标GIFs的目录./var/apache/loglog文件的目录./var/apache/proxyproxy缓存目录./var/apache/runhttpd.pid(包含主要的httpd过程标识符的文件)在此目录;

6、主要文件如下:httpd.conf,在/usr/local/apache/conf或/etc/httpd/conf下apachectl,在/usr/local/apache/bin或/etc/httpd/bin下access_log,纪录用户访问信息,在../logs里error_log,纪录用户访问错误信息,也在../logs里;

7、httpd.conf基本设置Port,Apache在哪一个TCP端口进行侦听,HTTP的默认端口为80。如果你使用其它端口,你不得不在URLs中指定端口来连接你的服务器,User,Group由于安全上的原因,在Linux上,可以通过把User和Group都设置成nobody Server Root参数应该是Apache安装的基础。除非你移动了周围的资料,否则其值与你所给定的值一样。Server Name,如果你的机器有多个名称或者IP地址,设置Apache表征服务器的名称。Document Root是Web树的根目录,UserDir在启用~username处理请求时,此指令告诉Apache哪个目录追加到用户的主目录(home)。UserDir被设置为public_html。用户将只有基本的网页服务功能,是一个容器指令。格式的结束指令。及相关的和指令的目的,是为了让你在每个目录或者每个文件的基础上,控制Apache行为的方式。指令放在中,也适用于子目录。

FollowSymLinks选项,告诉Apache它可以从文档根目录内部到文档根目录外部跟踪符号链接。在文档根目录内部,FollowSymLinks和Indexes都处于开启状态(on)。万一缺省的索引文件(通常为index.html)不存在时,最后允许目录列表显示。

§ 指令设置

ApacheDirectory中,用Options指令你可以控制什么选项是被允许的。

Options指令:

1、ExecCGICGI脚本程序能够运行于该目录树。

2、FollowSymLinks在该目录中,服务器将跟踪符号链接。注意:即使服务器跟踪符号链接,它也不会改变用来匹配不同区域的路径名。注意:如果在区域内设置,该选项会被忽略。

3、Includes服务器端包容被允许。

4、IncludesNOEXEC服务器端引用被允许,但#exec命令和CGI脚本程序的#include被禁止。

5、Indexes如果要求映射到目录的URL和在该目录里没有DirectoryIndex(例如,index.html),那么服务器将返回格式化的目录列表。

6、MultiViews处理多重浏览内容被允许。

7、SymLinksIfOwnerMatch通过与用户id一样的链接,服务器只跟踪目标文件或者目录所拥有的符号链接。

8、All除MultiViews外的一切东西。要是没有Options指令,默认为all。

Access File Name命令来设置(缺省设置为.htaccess)。在任何目录中,Apache配置指令可被放入一个叫做.htaccess的文件。指令也可应用于目录里的子目录。在访问文件中,

Allow Override控制哪个指令将被使用。如果Allow Override被设置为none。Apache甚至不会检查访问文件。ApacheAllow Override参数:

1、AuthConfig,授权指令哪一个允许使用;

2、FileInfo,用来控制文档类型和处理方法的指令;

3、Indexes,使用其中的一个指令来控制目录列表、图标等的显示;

4、Limit,允许使用指令来控制主机访问;

5、Options,使用Options指令中的一个。

“allow”和“deny”指令就是用来控制访问的。第三个指令“order”,控制这些指令的使用顺序。如果你把顺序设置成allow,deny,而没有指定哪个主机是被拒绝的话,则所有主机都被假定为禁止访问。在本例子中,allow指令被选中,deny指令被普遍应用。在.htaccess文件或者指令内,更多典型的配置可能是:orderallow,denyallowfromalldenyaaa.com所有主机被允许,除了那些来自aaa.com域的主机。

如果相反,orderdeny,allowdenyfromallallowfrom11.23.44deny首先被检查。只有来自11.23.44IP网络的主机才被允许访问。它也可能指定网络掩码,参数11.23.44.0/255.255.255.0相当于上面的例子。

§ 配置

Apache1、支持用户个人主页:在../conf/httpd.conf中加入UserDir/home/*/public_html设置用户可以使用CGI等:optionsExecCGISetHandlercgi-bin#如果在全局设置了AddHandlercgi-bin.cgi。

2、虚拟主机设置:

基于IP的虚拟主机若该机器的IP地址为192.168.0.2,虚拟的IP为192.168.0.3首先,在一台机器的网卡上绑定多个IP地址去服务多个虚拟主机。

/sbin/ifconfigeth0:0192.168.0.2netmask255.255.255.0broadcast192.168.11.255up

/sbin/routeadd-host192.168.0.2eth0:0

设置../conf/httpd.conf文件:看DocumentRoot是什么,如果为/home/httpdDocumentRoot/home/httpd/aaa创建目录/home/httpd/aaa。

基于名字的虚拟主机:编辑../conf/httpd.conf

NameVirtualHost192.168.0.2DocumentRoot/home/httpd/aaaServerNameaaa.yourdomain.com

要有NameVirtualHost在最前面,下面依次为各个虚拟主机,还需要把aaa.yourdomain.com的DNS都指向IP地址192.168.0.2

3、Apache用户认证基本的Apache用户认证假定,对目录/home/aaa下的文件需要做到用户认证,在httpd.conf中加入下面的行allowoverrideauthconfigorderallow,denyallowfromall用在目录/home/aaa下放文件.htaccess,内容如下:authname"PleasegivemeyourIDnumberandPassword"authtypebasicauthuserfile/etc/.passwdrequirevalid-user

用htpasswd生成文件/etc/.passwd,htpasswd-c/etc/.passwdusername

§ 相关词条

MYSQLIPICPALEXAPRSEO

CGIFSOFTPPOP3WCMECM

FLASHWEBGPUCPADIVCSS

HTMLBBS.NETXMLAJAXMD5

§ 参考资料

1、http://www.apache.org/

2、http://apache.chinahtml.com/

3、http://www.skycn.com/soft/1218.html

4. http://apache.blinux.cn/

随便看

 

百科全书收录594082条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/9/21 17:46:24