WWW是英文World Wide Web的所写,它是一种信息查询系统,可提供什么服务?

WWW是英文World Wide Web的所写,它是一种信息查询系统,可提供什么服务?,第1张

WWW是World Wide Web (环球信息网)的缩写,也可以简称为Web,中文名字为“万维网”。其创建者伯纳斯•李,在他1991年8月6日创建的第一个网址中解释了万维网的工作原理等内容。他也因此被《时代》杂志评价为二十世纪最重要的100位人物之一。

WWW(World Wide Web),是一张附着在Internet上的覆盖全球的信息"蜘蛛网",镶嵌着无数以超文本形式存在的信息,其中有璀璨的明珠,当然也有腐臭的垃圾。有人叫它全球网,有人叫它万维网,或者就简称为Web(全国科学技术名词审定委员会建议,WWW的中译名为"万维网")。WWW是当前Internet上最受欢迎、最为流行、最新的信息检索服务系统。它把Internet上现有资源统统连接起来,使用户能在Internet上已经建立了WWW服务器的所有站点提供超文本媒体资源文档。这是因为,WWW能把各种类型的信息(静止图像、文本声音和音像)无义无缝的集成起来。WWW不仅提供了图形界面的快速信息查找,还可以通过同样的图形界面(GUI)与Internet的其他服务器对接。

由于WWW为全世界的人们提供查找和共享信息的手段,所以也可以把它看作是世界上各种组织机构、科研机关、大学、公司厂商热衷于研究开发的信息集合。它基于Internet的查询。信息分布和管理系统,是人们进行交互的多媒体通信动态格式。它的正式提法是:"一种广域超媒体信息检索原始规约,目的是访问巨量的文档"。WWW已经实现的部分是,给计算机网络上的用户提供一种兼容的手段,以简单的方式去访问各种媒体。它是第一个真正的全球性超媒体网络,改变了人们观察和创建信息的方法。因而,整个世界迅速掀起了研究开发使用WWW的巨大热潮。

WWW诞生于Internet之中,后来成为Internet的一部分,而今天,WWW几乎成了Internet的代名词。通过它,加入其中的每个人能够在瞬间抵达世界的各个角落,只要将一根电话线插入你的PC(它可能是你随身携带的笔记本电脑加上一部移动电话),此时全球的信息就在你的指尖!

WWW并不是实际存在于世界的哪一个地方,事实上,WWW的使用者每天都赋予它新的含义。Internet社会的公民们(包括机构和个人),把他们需要公之于众的各类信息以主页(Homepage)的形式嵌入WWW,主页中除了文本外还包括图形、声音和其他媒体形式;而内容则从各类招聘广告到电子版圣经,可以说包罗万象,无所不有。主页是在Web上出版的主要形是一些HTML文本(HTML即Hyper Text Markup Language,超文本标识语言)。

20世纪40年代以来人们就梦想能拥有一个世界性的信息库。在这个数据库中数据不仅能被全球的人们存取,而且应该能轻松地链接其它地方的信息,以便用户可以方便快捷地获得重要的信息。它引发了第五次信息革命。

随着科学技术的迅猛发展,人们的这个梦想已经变成了现实。目前正在使用的最流行的系统叫"环球信息网WWW"(World Wide Web)。它的正式定义是"WWW is a wide-area hypermedia information retrieval initiative to give universal access to large universe of documents"简而言之,WWW是一个以Internet为基础的计算机网络,它允许用户在一台计算机通过Internet存取另一台计算机上的信息。从技术角度上说,环球信息网是Internet上那些支持WWW协议和超文本传输协议HTTP(Hyper Text Transport Protocol)的客户机与服务器的集合,透过它可以存取世界各地的超媒体文件,内容包括文字、图形、声音、动画、资料库、以及各式各样的软件。

理论上说来,环球信息网包括整个两亿人以上的Internet世界,它包含所有的Web站点、Gopher信息站、FTP档案库、Telnet公共存取帐号、News新闻讨论区以及Wais资料库。所以环球信息网可以说是当今全世界最大的电子资料世界,已经可以把World Wide Web当成是Internet 的同义词了。事实上,一般我们日常所说的"上Internet",其实指的就是连上World Wide Web 。WWW是World Wide Web (环球信息网)的缩写,也可以简称为Web,中文名字为“万维网”。

环球信息网之所以称之为信息网,完全是因为它的资源可以互相连接的缘故,全世界目前大概有数万个Web站,每个Web 站都可以透过超链结(Hyper link)与其它Web 站连接,任何人都可以设计自己的Home Page,放上Web 站,然后在你的Home Page 上面产生链结,与其他人的Home Page 连接,或是连到其他的Web 站;别人也一样可以连到你的Home Page ,或是你的Web 站,整个信息网就这样编织了起来,形成一个巨大的环球信息网。本章将简要介绍一下环球信息网的一些概念:客户机、服务器、协议等。在本章中我们还将了解到环球信息网的历史与发展。

客户机与服务器

客户机、服务器和协议虽然都是很简单的概念,但描述它们比理解它们更难。

客户机是一个需要某些东西的程序,而服务器则是提供某些东西的程序。一个客户机可以向许多不同的服务器请求。一个服务器也可以向多个不同的客户机提供服务。通常情况下,一个客户机启动与某个服务器的对话。服务器通常是等待客户机请求的一个自动程序。客户机通常是作为某个用户请求或类似于用户的每个程序提出的请求而运行的。协议是客户机请求服务器和服务器如何应答请求的各种方法的定义。WWW客户机又可称为浏览器。

通常的环球信息网上的客户机主要包括:Lynx、Mosaic、Netscape等。通常的服务器来自于CERN、NCSA、Netscape。让我们来看一下Web中客户机与服务器的具体任务。

在Web中,客户机的任务是:

1帮助你制作一个请求(通常在单击某个链接点时启动)。

2将你的请求发送给某个服务器。

3通过对直接图象适当解码,呈交HTML文档和传递各种文件给相应的"观察器"(Viewer),把请求所得的结果报告给你。

一个观察器是一个可被WWW客户机调用而呈现特定类型文件的程序。当一个声音文件被你的WWW客户机查阅并下载时,它只能用某些程序(例如Windows下的"媒体播放器")来"观察"。

通常WWW客户机不仅限于向Web服务器发出请求,还可以向其他服务器(例如Gopher、FTP、news、mail)发出请求。

一个Web服务器的任务是:

1接受请求

2请求的合法性检查,包括安全性屏蔽。

3针对请求获取并制作数据,包括Java脚本和程序、CGI脚本和程序、为文件设置适当的MIME类型来对数据进行前期处理和后期处理。

4把信息发送给提出请求的客户机。

Web拥有一个被称为"无状态"的协议。这是因为服务器在发送给客户机应答信息后便遗忘了此次交互。在"有状态"的协议中客户机与服务器要记住许多关于彼此和它们的各种请求与应答信息。

Web是一个易于实现的协议。因为无状态的协议是很轻松的,它没有多少必需的核心代码和资源。此种协议的另一吸引人的特性是可以方便地从一个服务器转向另一个服务器(在客户机端)或者从一个客户机转到另一客户机(服务器端),而无需过多的清理和跟踪。这种快速转移的能力对于超文本而言是非常理想的。(本章后面有一节介绍超文本的定义)

Internet和伴随它产生的一切是一个分布极为广泛的网络。它们支持的标准的或者至少是具有互操作性的协议,允许这种互操作性跨越学术界、商业界乃至于国界。也就是说,Internet、TCP/IP协议、HTTP协议以及WWW不属于任何人所有。不同国家的学校和公司可独立地建立客户机和服务器,而它们在Web上一起协同工作。这种实现方法有一个极大的好处,那就是其拓展的空间即便不是完全开放的,也是相当开放的。

WWW的起源

1945年8月份Vannevar Bush在 Atlantic Monthly杂志上发表了一篇题为"正如我们所想到的"的文章,从那时起,关于文档信息的电子化链接的念头就一直萦绕在计算机工作者、信息科学家们的脑海中。

作家们远在Bush的文章之前就已预料到这种"链接"。文章的脚注难道不就是用原始的纸笔与其他作品"超链接"吗?难道作家引用和借鉴别人的作品的方法不是更进一步的"超链接"吗?例如,鲁迅的""和茅盾的""两篇作品也是在纸张环境中使用超文本的例子。这说明类似超文本的使用需求已经流行很长时间了。

然而正是Bush才把此种想法与电子技术联系在一起。Bush预见到因战争需要发展起来的新技术将会被广泛应用,并会改变我们的思维方式。总之,Bush关于我们如何组织和使用信息的基本思想已经成为今天我们所看到的WWW和超文本。

超文本(Hypertext)这个术语是Ted Nelson于1965年首创的,它通常是指不局限于线性方式的文本。也就是说,超文本文档的部分甚至全部也许都是线性的,但也可能都是非线性的。超文本通过链接或引用其它文本的方式突破了线性方式的局限性。超文本是超媒体的一个子集。超媒体是指这样一种媒体(文本、、声音、视频录象等),它与其它媒体以非线性方式链接而成。

超文本最早是由鼠标器的发明者Douglas Engelbart和Ted Nelson付诸实现的。他们俩的超文本实现工作受到60年代的技术和复杂的设计基础的极大限制。两个人的项目想象成分多于可行的成分。1967年Nelson他把实现分布式超文本的计划命名为Xanadu。Xanadu这个项目是用于处理所有的版权和帐务问题的,按他的说法,Xanadu有足够的健壮性,可用于把全世界的出版物统统联网。虽然其结果是失败的,但它为超文本和WWW的发展奠定了坚实的基础。

HTML的产生和WWW的发行

1989年3月,在欧洲粒子物理研究所,即CERN,Tim Berners-Lee提出一项计划,目的是使科学家们能很容易地翻阅同行们的文章。此项计划的后期目标是使科学家们能在服务器上创建新的文档。为了支持此计划,Tim创建了一种新的语言来传输和呈现超文本文档。这种语言就是超文本标注语言HTML(Hyper text Markup Language)。它使标准通用标注语言SGML(Standard Generalized Markup Language)的一个子集。SGML早已被证明是开放式的语言。

用于操纵HTML和其他WWW文档的协议被称为超文本传输协议HTTP (HyperText Transfer Protocol)(有关HTTP协议的内容将在第二章加以介绍)。遵照Internet的习惯,几乎所有协议的名称都以TP结尾。而相应的服务器则被称为超文本传输协议守护进程HTTPD(HyperText Transfer Protocol Daemon)。

HTTP使用了统一资源定位器URL(Uniform Resource Locator)这一概念。简单地说,URL就是文档在环球信息网上的"地址"。URL用于标识Ineternet或者与Internet相连的主机上的任何可用的数据对象。URL中的U常常被认为表示"统一",实际上在许多重要文档中也是这样引用的。

在URL概念背后有一个基本思想,那就是:提供一定信息条件下,你应能在Internet上的任何一台机器上访问任何可用的公共数据。这些一定的信息由以下的URL基本部分组成:

·所使用的访问协议

·数据所在的机器

·请求数据的数据源端口

·通向数据的路径

·包含了所需数据的文件的名称 URL的标准格式如下:

protocol://machineaddress:port/path/filename

例如,想要访问南京理工大学的Web站点,其URL为:

http://wwwnjusteducn

1992年7月,WWW在CERN内部得到了广泛的应用。从此以后WWW得到了热情的接受,在Internet上开始有所影响。到1993年1月,全世界已有50个为人所知的WWW服务器,各种浏览器软件开始发行。同年2月,伊利诺斯大学Urbana-Champaign分校的国家超级计算机中心NCSA(National Center for Supercomputing Applications)发行了一个新的浏览器软件。从此,WWW已初具规模。

NCSA的Mosaic到Netscape看浏览器的发展

WWW曾经存在的问题之一就是没有用于通用计算机和操作系统上的可靠的浏览器。Mosaic的问世解决了这个问题。由Joe Hardin领导的NCSA系统开发组开始了一项计划,其目标是建立一个很有用的WWW浏览器,不仅能处理Tim Berners-Lee所描述的WWW,而且能支持其他的访问协议。这个客户程序被称作Mosaic,于1993年2月发布。

许多计算机专家提出了许多新建议,使得HTML和WWW得到了飞速的发展。NCSA小组详细地研究了MIME(Multipurpose Internet Mail Extension)类型的使用,以便识别一些媒体的格式,尤其是声音、、动画等。使用MIME类型似乎是理所当然的一步,因为通用Internet邮件扩充服务MIME早已被作为能定义和编码大多数数据类型的目标。MIME类型有新的优势,体现在可扩充性和已被证明的实用性上。更妙的是大量用于操作MIME的程序代码早已编写出来,随时可用于新的程序——WWW客户机和服务器程序。

在HTML中加入了"IMG"标记之后,Mosaic成了真正的多媒体浏览器。超文本页面骤然变得亲切友好了许多。展现得不在仅是科学家和学者们所用的枯燥的学术研究信息,当今世界的各种信息都能以多媒体的方式生动地展现在人们的面前。Web从此已经成熟,这也正是Internet期望已久的。

WWW与面向网络的编程语言JAVA

简单地说,JAVA是一个由SUN公司开发而成的新一代编程语言。JAVA的目标是为满足在一个充满各式各样不同种机器、不同种操作平台的网络环境中开以软件。这也正是为什么不论你使用的是哪一种WWW浏览器,哪一种计算机,哪一种操作系统,只要WWW浏览器上面注明了"支持JAVA",你就可以看到生动的起始页的原因。

利用JAVA编程语言,你可以在你的起始页中加入各式各样的动态效果,你可以放上一段动画,可以在起始页上建立霓虹灯式的看板,让你的名字在上面不停地转动。如果你愿意,就像一般的窗口程序一样,你还可以放上菜单和按钮,以及滚动条。只要使用JAVA,没有什么你做不到的。

为什么JAVA可以做到这些传统起始页上做不到的动态演示呢?没有别的原因,在加入JAVA的支持后,你的起始页已不再只是一个冷冰冰的"文件",而是配合JAVA程序的一个活生生的程序实体。正因为这一点,在你使用Netscape Navigator或者Microsoft Internet Explorer观看各地起始页时,你所用的WWW浏览器不但要负责将HTML格式的文件以正确的格式显示出来,同时也必须负责在你所使用的机器上,执行伴随而来的JAVA程序。

事实上,对这样一种伴随起始页而来的JAVA程序,我们取了一种特别的名称,叫Applet,我们可以把它想像成是一个个小巧可爱的程序。JAVA除了开发附在起始页上的小应用程序外,也具备有开以大型应用程序(Application)的能力,并且同样可以跨越不同种类的机器、不同种类的操作平台的限制,在各地执行。

Apache服务器的设置文件位于/usr/local/apache/conf/目录下,传统上使用三个配置文件httpdconf,accessconf和srmconf,来配置Apache服务器的行为。

httpdconf提供了最基本的服务器配置,是对守护程序httpd如何运行的技术描述;srmconf是服务器的资源映射文件,告诉服务器各种文件的MIME类型,以及如何支持这些文件;accessconf用于配置服务器的访问权限,控制不同用户和计算机的访问限制;这三个配置文件控制着服务器的各个方面的特性,因此为了正常运行服务器便需要设置好这三个文件。

除了这三个设置文件之外,Apache还使用mimetypes文件用于标识不同文件对应的MIME类型, magic文件设置不同MIME类型文件的一些特殊标识,使得Apache 服务器从文档后缀不能判断出文件的MIME 类型时,能通过文件内容中的这些特殊标记来判断文档的MIME类型。

bash-202$ ls -l /usr/local/apache/conf

total 100

-rw-r--r-- 1 root wheel 348 Apr 16 16:01 accessconf

-rw-r--r-- 1 root wheel 348 Feb 13 13:33 accessconfdefault

-rw-r--r-- 1 root wheel 30331 May 26 08:55 httpdconf

-rw-r--r-- 1 root wheel 29953 Feb 13 13:33 httpdconfdefault

-rw-r--r-- 1 root wheel 12441 Apr 19 15:42 magic

-rw-r--r-- 1 root wheel 12441 Feb 13 13:33 magicdefault

-rw-r--r-- 1 root wheel 7334 Feb 13 13:33 mimetypes

-rw-r--r-- 1 root wheel 383 May 13 17:01 srmconf

-rw-r--r-- 1 root wheel 357 Feb 13 13:33 srmconfdefault

事实上当前版本的Apache将原来httpdconf、srmconf与accessconf中的所有配置参数均放在了一个配置文件httpdconf中,只是为了与以前的版本兼容的原因(使用这三个设置文件的方式来源于NCSA-httpd),才使用三个配置文件。而提供的accessconf和srmconf文件中没有具体的设置。

由于在新版本的Apache中,所有的设置都被放在了httpdconf中,因此只需要调整这个文件中的设置。以下使用缺省提供的httpdconf为例,解释Apache服务器的各个设置选项。然而不必因为它提供设置的参数太多而烦恼,基本上这些参数都很明确,也可以不加改动运行Apache服务器。但如果需要调整Apache服务器的性能,以及增加对某种特性的支持,就需要了解这些设置参数的含义。

关于Apache服务器的性能,在Internet上存在很大的争议,基本上使用Apache的使用者几乎都不怀疑它的优秀性能,Apache也支撑了很多著名的高负载的网站,但是在商业机构的评测中,Apache往往得分不高。很多人指出,在这些评测中,商业Web服务器及其操作系统往往由其专业公司的工程师进行过性能调整,而Free 的操作系统和Web服务器往往就使用其缺省配置或仅仅作很小的更改。需要指出的是,除了操作系统的性能调整之外,Apache 服务器本身的缺省配置绝不是最优化和最高效的,而是要适应几乎所有种类操作系统、所有种类硬件下的设置,多平台的软件不可能为特定平台和特定硬件提供最优化的缺省配置。因此要使用Apache的时候,性能调整是必不可少的。

在商业评测中忽略了的另一个事实是,评测时往往对不同种类的功能进行比较,例如使用Apache的标准CGI 的性能与ISAPI,NSAPI等服务器端API比较,事实上Apache服务器与此可以比较的功能为modperl ,FastCGI,与ASP类似的功能为PHP等等,只不过由于Apache的开放模式,这些功能是由独立的开发组,作为独立的模块来实现的。但是在评测中,测试人员没有加入相应的模块评测其性能。

HTTP守护进程的运行参数

httpdconf中首先定义了一些httpd守护进程运行时需要的参数,来决定其运行方式和运行环境。

ServerType standalone

ServerType定义服务器的启动方式,缺省值为独立方式standalone,httpd

服务器将由其本身启动,并驻留在主机中监视连接请求。在Linux下将在启动文件 /etc/rcd/rclocal/initd/apache中自动启动Web服务器,这种方式是推荐设置。

启动Apache服务器的另一种方式是inet方式,使用超级服务器inetd监视连接请求并启动服务器。当需要使用inetd启动方式时,便需要更改为这个设置,并屏蔽/etc/rcd/rclocal/initd/apache文件,以及更改/etc/inetdconf并重起inetd,那么Apache就能从inetd中启动了。

两种方式的区别是独立方式是由服务器自身管理自己的启动进程,这样在启动时能立即启动服务器的多个副本,每个副本都驻留在内存中,一有连接请求不需要生成子进程就可以立即进行处理,对于客户浏览器的请求反应更快,性能较高。而 inetd方式要由inetd发现有连接请求后才去启动http服务器,由于inetd 要监听太多的端口,因此反应较慢、效率较低,但节约了没有连接请求时Web服务器占用的资源。因此inetd方式只用于偶尔被访问并且不要求访问速度的服务器上。事实上inetd方式不适合http的突发和多连接的特性,因为一个页面可能包含多个图象,而每个图象都会引起一个连接请求,即使虽然访问人数造成教少,但瞬间的连接请求并不少,这就受到inetd性能的限制,甚至会影响由inetd启动的其他服务器程序。

ServerRoot "/usr/local"

ServerRoot用于指定守护进程httpd的运行目录,httpd在启动之后将自动将进程的当前目录改变为这个目录,因此如果设置文件中指定的文件或目录是相对路径,那么真实路径就位于这个ServerRoot定义的路径之下。

由于httpd会经常进行并发的文件操作,就需要使用加锁的方式来保证文件操作不冲突,由于NFS文件系统在文件加锁方面能力有限,因此这个目录应该是本地磁盘文件系统,而不应该使用NFS文件系统。

#LockFile /var/run/httpdlock

LockFile参数指定了httpd守护进程的加锁文件,一般不需要设置这个参数, Apache服务器将自动在ServerRoot下面的路径中进行操作。但如果ServerRoot为NFS文件系统,便需要使用这个参数指定本地文件系统中的路径。

PidFile /var/run/httpdpid

PidFile指定的文件将记录httpd守护进程的进程号,由于httpd能自动复制其自身,因此系统中有多个httpd进程,但只有一个进程为最初启动的进程,它为其他进程的父进程,对这个进程发送信号将影响所有的httpd进程。PidFILE定义的文件中就记录httpd父进程的进程号。

ScoreBoardFile /var/run/httpdscoreboard

httpd使用ScoreBoardFile来维护进程的内部数据,因此通常不需要改变这个参数,除非管理员想在一台计算机上运行几个Apache服务器,这时每个Apache服务器都需要独立的设置文件htt pdconf,并使用不同的ScoreBoardFile。

#ResourceConfig conf/srmconf

#AccessConfig conf/accessconf

这两个参数ResourceConfig和AccessConfig,就用于和使用 srmconf 和 accessconf 设置文件的老版本Apache兼容。如果没有兼容的需要,可以将对应的设置文件指定为/dev/null,这将表示不存在其他设置文件,而仅使用httpdconf 一个文件来保存所有的设置选项。

Timeout 300

Timeout定义客户程序和服务器连接的超时间隔,超过这个时间间隔(秒)后服务器将断开与客户机的连接。

KeepAlive On

在HTTP 10中,一次连接只能作传输一次HTTP请求,而KeepAlive参数用于支持HTTP 11版本的一次连接、多次传输功能,这样就可以在一次连接中传递多个HTTP请求。虽然只有较新的浏览器才支持这个功能,但还是打开使用这个选项。

MaxKeepAliveRequests 100

MaxKeepAliveRequests为一次连接可以进行的HTTP请求的最大请求次数。将其值设为0将支持在一次连接内进行无限次的传输请求。事实上没有客户程序在一次连接中请求太多的页面,通常达不到这个上限就完成连接了。

KeepAliveTimeout 15

KeepAliveTimeout测试一次连接中的多次请求传输之间的时间,如果服务器已经完成了一次请求,但一直没有接收到客户程序的下一次请求,在间隔超过了这个参数设置的值之后,服务器就断开连接。

MinSpareServers 5MaxSpareServers 10

在使用子进程处理HTTP请求的Web服务器上,由于要首先生成子进程才能处理客户的请求,因此反应时间就有一点延迟。但是,Apache服务器使用了一个特殊技术来摆脱这个问题,这就是预先生成多个空余的子进程驻留在系统中,一旦有请求出现,就立即使用这些空余的子进程进行处理,这样就不存在生成子进程造成的延迟了。在运行中随着客户请求的增多,启动的子进程会随之增多,但这些服务器副本在处理完一次HTTP请求之后并不立即退出,而是停留在计算机中等待下次请求。但是空余的子进程副本不能光增加不减少,太多的空余子进程没有处理任务,也占用服务器的处理能力,因此也要限制空余副本的数量,使其保持一个合适的数量,使得既能及时回应客户请求,又能减少不必要的进程数量。

因此就可以使用参数MinSpareServers来设置最少的空余子进程数量, 以及使用参数MaxSpareServers 来限制最多的空闲子进程数量,多余的服务器进程副本就会退出。根据服务器的实际情况来进行设置,如果服务器性能较高,并且也被频繁访问,就应该增大这两个参数的设置。对于高负载的专业网站,这两个值应该大致相同,并且等同于系统支持的最多服务器副本数量,也减少不必要的副本退出。

StartServers 5

StartServers参数就是用来设置httpd启动时启动的子进程副本数量,这个参数与上面定义的MinSpareServers和MaxSpareServers参数相关,都是用于启动空闲子进程以提高服务器的反应速度的。这个参数应该设置为前两个值之间的一个数值,小于MinSpareServers和大于MaxS pareServers都没有意义。

MaxClients 150

在另一方面,服务器的能力毕竟是有限的,不可能同时处理无限多的连接请求,因此参数Maxclient s就用于规定服务器支持的最多并发访问的客户数,如果这个值设置得过大,系统在繁忙时不得不在过多的进程之间进行切换来为太多的客户进行服务,这样对每个客户的反应就会减慢,并降低了整体的效率。如果这个值设置的较小,那么系统繁忙时就会拒绝一些客户的连接请求。当服务器性能较高时,就可以适当增加这个值的设置。对于专业网站,应该使用提高服务器效率的策略,因此这个参数不能超过硬件本身的限制,如果频繁出现拒绝访问现象,就说明需要升级服务器硬件了。对于非专业网站,不太在意对客户浏览器的反应速度,或者认为反应速度较慢也比拒绝连接好,就也可以略微超过硬件条件来设置这个参数。

这个参数限制了MinSpareServers和MaxSpareServers的设置,它们不应该大于这个参数的设置。

MaxRequestsPerChild 30

使用子进程的方式提供服务的Web服务,常用的方式是一个子进程为一次连接服务,这样造成的问题就是每次连接都需要生成、退出子进程的系统操作,使得这些额外的处理过程占据了计算机的大量处理能力。因此最好的方式是一个子进程可以为多次连接请求服务,这样就不需要这些生成、退出进程的系统消耗,Apache就采用了这样的方式,一次连接结束后,子进程并不退出,而是停留在系统中等待下一次服务请求,这样就极大的提高了性能。

但由于在处理过程中子进程要不断的申请和释放内存,次数多了就会造成一些内存垃圾,就会影响系统的稳定性,并且影响系统资源的有效利用。因此在一个副本处理过一定次数的请求之后,就可以让这个子进程副本退出,再从原始的httpd进程中重新复制一个干净的副本,这样就能提高系统的稳定性。这样,每个子进程处理服务请求次数由MaxRe questPerChild定义。 缺省的设置值为30,这个值对于具备高稳定性特点的Linux系统来讲是过于保守的设置,可以设置为1000甚至更高,设置为0支持每个副本进行无限次的服务处理。

#Listen 3000

#Listen 12345678:80

#BindAddress

Listen参数可以指定服务器除了监视标准的80端口之外,还监视其他端口的HTTP请求。由于FreeBSD系统可以同时拥有多个IP地址,因此也可以指定服务器只听取对某个BindAddress< /B>的IP地址的HTTP请求。如果没有配置这一项,则服务器会回应对所有IP的请求。

即使使用了BindAddress参数,使得服务器只回应对一个IP地址的请求,但是通过使用扩展的Listen参数,仍然可以让HTTP守护进程回应对其他IP地址的请求。此时Listen参数的用法与上面的第二个例子相同。这种比较复杂的用法主要用于设置虚拟主机。此后可以用VirtualHost参数定义对不同IP的虚拟主机,然而这种用法是较早的HTTP 10标准中设置虚拟主机的方法,每针对一个虚拟主机就需要一个IP地址,实际上用处并不大。在HTTP 11中,增加了对单IP地址多域名的虚拟主机的支持,使得虚拟主机的设置具备更大的意义。

LoadModule mime_magic_module libexec/apache/mod_mime_magicso

LoadModule info_module libexec/apache/mod_infoso

LoadModule speling_module libexec/apache/mod_spelingso

LoadModule proxy_module libexec/apache/libproxyso

LoadModule rewrite_module libexec/apache/mod_rewriteso

LoadModule anon_auth_module libexec/apache/mod_auth_anonso

LoadModule db_auth_module libexec/apache/mod_auth_dbso

LoadModule digest_module libexec/apache/mod_digestso

LoadModule cern_meta_module libexec/apache/mod_cern_metaso

LoadModule expires_module libexec/apache/mod_expiresso

LoadModule headers_module libexec/apache/mod_headersso

LoadModule usertrack_module libexec/apache/mod_usertrackso

LoadModule unique_id_module libexec/apache/mod_unique_idso

ClearModuleList

AddModule mod_envc

AddModule mod_log_configc

AddModule mod_mime_magicc

AddModule mod_mimec

AddModule mod_negotiationc

AddModule mod_statusc

AddModule mod_infoc

AddModule mod_includec

AddModule mod_autoindexc

AddModule mod_dirc

AddModule mod_cgic

AddModule mod_asisc

AddModule mod_imapc

AddModule mod_actionsc

AddModule mod_spelingc

AddModule mod_userdirc

AddModule mod_proxyc

AddModule mod_aliasc

AddModule mod_rewritec

AddModule mod_accessc

AddModule mod_authc

AddModule mod_auth_anonc

AddModule mod_auth_dbc

AddModule mod_digestc

AddModule mod_cern_metac

AddModule mod_expiresc

AddModule mod_headersc

AddModule mod_usertrackc

AddModule mod_unique_idc

AddModule mod_soc

AddModule mod_setenvifc

Apache服务器的一个重要特性就是其模块化的结构,这不但表现为其能在编译时能通过新的模块加入新的功能,还表现为其模块可以动态加载入http服务程序中,而不必载入不需要的模块。使用Apache的动态加载模块只需要设置好Load Module和AddModule参数就可以了,这种特性就是Apache的 DSO(Dynamic Shared Object)特性,然而要想充分使用DSO特性仍然不是一个简单的事情,不适当的改动这里的设置就可能造成服务器不能正常启动。因此如果不是要增加或减少服务器提供的功能,就不要改动这里的设置。

上面这些列表就显示了Linux下的缺省Apache服务器支持的模块,事实上很多模块是没有必要的,不必要模块不会被载入内存。模块可以静态连接到pache 服务器内部,也可以这样动态加载,将Apache的特性都编译成动态可加载模块是该Port的做法,而不是Apache的缺省做法,这样就以牺牲很小的性能的同时,带来极大的灵活性。

因而动态可加载的能力还是对性能有轻微的影响,因此可以重新编译Apache,将自己所需要的功能编译进Apache 服务器内部,可以让系统显得更为干净,效率也有轻微的提高。通常仅仅为了这一个目的就重新编译Apache是没有必要的,如果需要增加其他特性而重新编译Apache,不妨在增加其他模块的同时将所有的模块都静态连接入Apache 服务器。有的使用者更喜欢动态加载模块,那么也不妨全部都使用动态加载模块。

这些模块都被放置到/usr/local/apache/libexec/目录下, 每个模块对应Apache服务器的一个特性。详细解释每个模块的功能需要相当多的篇幅,其中比较重要的特性将在后面相应的地方中进行解释,而具体每个模块的功能及用法就需要查看Apache的文档。

#ExtendedStatus On

Apache服务器可以通过特殊的HTTP请求,来报告自身的运行状态,打开这个ExtendedStatus 参数可以让服务器报告更全面的运行状态信息。

一、什么是WWW服务

现在在Internet上最热门的服务之一就是环球信息网WWW(World Wide Web)服务,Web已经成为很多人在网上查找、浏览信息的主要手段。WWW是一种交互式图形界面的Internet服务,具有强大的信息连接功能。它使得成千上万的用户通过简单的图形界面就可以访问各个大学、组织、公司等的最新信息和各种服务。

商业界很快看到了其价值,许多公司建立了主页,利用Web在网上发布消息,并反它作为各种服务的界面,如客户服务、特定产品和服务的详细说明、宣传广千以及是渐增长的产品销售和服务。商业用途促进了环球信息网络的迅速发展。

如果你想通过主页向世界介绍自己或自己的公司,就必须将主页放在一个WEB服务器上,当然你可以使用一些免费的主页空间来发布。但是如果你有条件,你可以注册一个域名,申请一个IP地址,然后让你的ISP将这个IP地址解析到你的LINUX主机上。然后,在LINUX主机上架设一个WEB服务器。你就可以将主页存放在这个自己的WEB服务器上,通过它把自己的主页向外发布。

WWW是基于客户机/服务器方式的信息发现技术和超文本技术的综合。WWW服务器通过HTML超文本标记语言把信息组织成为图文并茂的超文本;WWW浏览器则为用户提供基于HTTP超文本传输协议的用户界面。用户使用WWW浏览器通过Internet访问远端WWW服务器上的HTML超文本,如下图所示:

http协议

WWW浏览器 <-----> WWW服务器

在WWW的客户机/服务器工作环境中,WWW浏览器起着控制作用,WWW浏览器的任务是使用一个URL(Internet地址)来获取一个WWW服务器上的WEB文档,解释这个HTML,并将文档内容以用户环境所许可的效果最大限度地显示出来。整个流程如下:

WWW浏览器根据用户输入的URL连到相应的远端WWW服务器上;

取得指定的WEB文档;

断开与远端WWW服务器的连接。

也就是说,平时我们在浏览某个网站的时候是每取一个网页建立一次连接,

读完后马上断开;当需要另一个网页时重新周而复始。

二、WWW服务器软件的比较和选择

目前,在世界各地有许多公司和学术团体,根据不同的计算机系统,开发出不同的WWW服务器,如Apache、CERN httpd、Microsoft Internet Information System、NCSA httpd、Plexus httpd、WebSite等。在UNIX/LINUX系统中常用的有:CERN、NCSA、Apache三种

CERN httpd

这是最早期的WWW服务器软件,用C语言编写,现在功能有限,用户在

缩减中。有兴趣的话可以在:ftp://ftpw3org/pub/WWW/bin中找到它。

NCSA httpd

这是在WWW服务器发展初期,美国国家超级计算机应用中心(NCSA)

在1995年创建的当时一流的WWW服务器。它也是用C语言编写的,程序小、速度快。但是现在NCSA WWW服务器的主要开发人员已经离开了NCSA,这个服务器项目已经停顿了。相信大家不会选择一个没有发展的WWW服务器软件吧!

当然,由于它的特殊历史地位,相信使用它的人现在还不少。如果你需要可以在ftp://ftpncsauiucedu获取它。

Apache

根据著名的WWW服务器调查公司所作的调查,世界上百分之五十以上的

WWW服务器都在使用Apache,是世界排名第一的WEB服务器。

Apache的诞生极富有戏剧性。当NCSA WWW服务器项目停顿后,那些使用NCSA WWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache。

Apache的主要特征是:

可以运行上所有计算机平台;

支持最新的HTTP 11协议;

简单而强有力的基于文件的配置;

支持通用网关接口CGI;

支持虚拟主机;

支持HTTP认证;

集成Perl脚本编程语言;

集成的代理服务器;

具有可定制的服务器日志;

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

支持安全Socket层(SSL)

用户会话过程的跟踪能力;

支持FastCGI;

支持Java Servlets。

我们还有什么理由放弃这个功能强大而且前途光明的WWW服务器软件呢?

三、安装Apache

下面我们就开始漫漫征服Apache之旅,通过循序渐进的需求实例,一步步地学习使用Apache,从入门到精通。

31 系统需求

运行Apache不需要太多的计算资源。它在有6-10MB硬盘空间和8MB RAM的Linux系统上运行得很好。然而,只运行Apache可能不是你想做的事情。更可能的是,你想运行Apache来提供WWW服务、启动CGI进程以及充分利用所有WWW能够提供的令人惊奇的功能。在这种情况下,你需要提供反映负载要求的额外的磁盘空间和内存空间。也就是说,如果仅仅是启动WWW服务并不需要太多的系统资源,但是想要能为大量的客户提供服务就需要更多的系统资源。

32 获取软件

你可以在http://wwwapacheorg中获得Apache的最新版。而几乎所有的Linux发行版中均包含有Apache软件包,你也可以直接使用它。

需要注意的是,Apache软件包有两种:一种是源代码,下载后需要自己重新编译;另一种是可执行文件,下载后只需解压就可以使用。

33 安装软件

你可以通过以下三种方法安装Apache服务器。

1.如果你安装的Linux版本中带用Apache的话,就在选择所要安装的服务器的时候,将httpd这个服务选上,Linux安装程序将自动完成Apache的安装工作,并做好基本的配置。

2.使用可执行文件软件包,这比较适合那些对编译工作不是太熟悉的初级用户,因为它相对比较简单。

下载软件包apache_124etargz

tar xvzf apache_124etargz

这就完成了安装工作,简单吧!

如果你使用的是RedHat Linux的话,你也可以下载apache_124rpm软件安

装包,然后使用rpm –ivh apache_124rpm命令安装。

3.如果你想把Apache服务器充分利用起来的话,就一定要自己编译Apache

定制其功能。

下载包含Apache源代码的软件包apache_124targz;

然后用tar命令将它解开;

将当前目录改变为Apache源代码发行版的src目录;

将配置样本文件(Configurationtmpl)复制为Configuration文件;

编辑Configuration文件中的配置选项:

Makefile配置选项:一些编译选项:

“CC=”一行指定用什么编译软件编译,一般为“CC=gcc”;

如果需要将额外的标志(参数)指定给C编译软件,可以使用:

EXTRA_CFLAGS=

EXTRA_LFLAGS=

如果系统需要特殊的库和包含文件,可以在这里指定它们:

EXTRA_LIBS=

EXTRA_INCLUDES=

如果你要改变代码优化设置的话,你须将下面一句去掉注释,然

后改成你所需要的值:

#OPTIM=-O2

Rule配置选项:用来决定需要什么功能,一般情况下无需改变。

模块配置:模块是Apache的组成部分,它为Apache内核增加新功能。通过使用模块配置,可以自定义在Apache服务器中需要什么功能,这个部分也是Apache灵活性的表现。模块配置行如下所示:

AddModule modules/standard/mod_envo

如果你需要Apache服务器具备什么功能,就将那个模块用AddModule语句加到配置文件Configuration中去。

下表列出了Apache的模块功能:

模块名 功能 缺省

mod_access 提供基于主机的访问控制命令 y

mod_actions 能够运行基于MIME类型的CGI脚本或HTTP请求方法 y

mod_alias 能执行URL重定向服务 y

mod_asis 使文档能在没有HTTP头标的情况下被发送到客户端 y

mod_auth 支持使用存储在文本文件中的用户名、口令实现认证 y

mod_auth_dbm 支持使用DBM文件存储基本HTTP认证 n

mod_auth_mysql 支持使用MySQL数据库实现基本HTTP认证 n

mod_auth_anon 允许以匿名方式访问需要认证的区域 y

mod_auth_external支持使用第三方认证 n

mod_autoindex 当缺少索引文件时,自动生成动态目录列表 y

mod_cern_meta 提供对元信息的支持 n

mod_cgi 支持CGI y

mod_dir 能够重定向任何对不包括尾部斜杠字符命令的请求 y

mod_env 使你能够将环境变量传递给CGI或SSI脚本 n

mod_expires 让你确定Apache在服务器响应请求时如何处理Expires y

mod_headers 能够操作HTTP应答头标 y

mod_imap 提供图形映射支持 n

mod_include 使支持SSI n

mod_info 对服务器配置提供了全面的描述 y

mod_log_agent 允许在单独的日志文件中存储用户代理的信息 n

mod_log_config 支持记录日志 y

mod_log_referer 提供了将请求中的Referer头标写入日志的功能 n

mod_mime 用来向客户端提供有关文档的元信息 y

mod_negotiation 提供了对内容协商的支持 y

mod_setenvif 使你能够创建定制环境变量 y

mod_speling 使你能够处理含有拼写错误或大小写错误的URL请求 n

mod_status 允许管理员通过WEB管理Apache y

mod_unique_id 为每个请求提供在非常特殊的条件下保证是唯一的标识 n

表一:Apache模块功能一览表

在src目录下执行:“ /configure”;

编译Apache:执行命令“make”;

根据机器性能的不同,经历一段5-30分钟的编译,就大功告成了。

将编译好的可执行文件httpd复制到/etc/httpd/bin目录下;

将Apache发行版的配置文件:accessconf、httpdconf、mimetypes、srmconf文件复制到/etc/httpd/conf目录下。到此为止,安装完成。

34 一些说明

在Red Hat Linux 60中,Apache将自己的所有配置文件和日志文件放在了“/etc/httpd”目录下,其中“/etc/httpd/conf”下为配置文件,“/etc/httpd/log”下为日志文件。

同时,它将建立“/home/httpd”目录,并在其下建立三个子目录:“html/”:在这个目录下存放HTML(主页)文件;“cgi-bin/”:在这个目录下可以存放一些CGI程序;“icons/”:在这个目录下是服务器自带的一些图标。

DNS分为Client和Server,Client扮演发问的角色,也就是问 Server 一个Domain Name,而Server必须要回答此Domain Name的真正IP地址,DNS是怎么来作名称解析的?

DNS的工作原理

DNS分为Client和Server,Client扮演发问的角色,也就是问Server一个Domain Name,而Server必须要回答此Domain Name的真正IP地址。而当地的DNS先会查自己的资料库。如果自己的资料库没有,则会往该DNS上所设的的DNS询问,依此得到答案之后,将收到的答案存起来,并回答客户。

DNS服务器会根据不同的授权区(Zone),记录所属该网域下的各名称资料,这个资料包括网域下的次网域名称及主机名称。

在每一个名称服务器中都有一个快取缓存区(Cache),这个快取缓存区的主要目的是将该名称服务器所查询出来的名称及相对的IP地址记录快取缓存区中,这样当下一次还有另外一个客户端到次服务器上去查询相同的名称 时,服务器就不用在到别台主机上去寻找,而直接可以从缓存区中找到该笔名称记录资料,传回给客户端,加速客户端对名称查询的速度。例如:

当 DNS客户端向指定的DNS服务器查询网际网路上的某一台主机名称 DNS服务器会在该资料库中找寻用户所指定的名称 如果没有,该服务器会先在自己的快取缓存区中查询有无该笔纪录,如果找到该笔名称记录后,会从DNS服务器直接将所对应到的IP地址传回给客户端 ,如果名称服务器在资料记录查不到且快取缓存区中也没有时,服务器首先会才会向别的名称服务器查询所要的名称。例如:

DNS客户端向指定的DNS服务器查询网际网路上某台主机名称,当DNS服务器在该资料记录找不到用户所指定的名称时,会转向该服务器的快取缓存区找寻是否有该资料 ,当快取缓存区也找不到时,会向最接近的名称服务器去要求帮忙找寻该名称的IP地址 ,在另一台服务器上也有相同的动作的查询,当查询到后会回复原本要求查询的服务器,该DNS服务器在接收到另一台DNS服务器查询的结果后,先将所查询到的主机名称及对应IP地址记录到快取缓存区中 ,最后在将所查询到的结果回复给客户端 。

范例

我们举例说明,假设我们要查询网际网路上的一个名称为wwwtestcomcn,从此名称我们知道此部主机在中国CN,而且要找的组织名称testcomcn此网域下的www主机,以下为名称解析过程的每一步骤。

《Step 1》在DNS的客户端(Reslover)键入查询主机的指令,如:

以下为引用的内容:

c:\ping wwwtestcomcn

pinging wwwtestcomcn 192728036with 32bytes of data

reply from 192728036 bytes time <10ms ttl 253

《Step 2》而被指定的DNS服务器先行查询是否属于该网域下的主机名称,如果查出改主机名称并不属于该网域范围,之后会再查询快取缓存区的纪录资料,查是否有此机名称。

《Step 3》查询后发现缓存区中没有此纪录资料,会取得一台根网域的其中一台服务器,发出说要找wwwtestcomcn的Request。

《Step 4》在根网域中,向Root Name Server询问,Root Name Server记录了各Top Domain分别是由哪些DNS Server负责,所以他会响应最接近的Name Server为控制CN网域的DNS伺服主机。

《Step 5》Root Name Server已告诉Local DNS Server哪部Name Server负责cn这个Domain,然后Local DNS再向负责发出找寻wwwtestcomcn的名称Request。

《Step 6》在cn这个网域中,被指定的DNS服务器在本机上没有找到此名称的的纪录,所以会响应原本发出查询要求的DNS服务器说最近的服务器在哪里?他会回应最近的主机为控制comcn网域的DNS伺服主机。

《Step 7》原本被查询的DNS服务器主机,收到继续查询的IP位置后,会再向comcn的网域的DNS Server发出寻找wwwtestcomcn名称搜寻的要求。

《Step 8》comcn的网域中,被指定的DNS Server在本机上没有找到此名称的记录,所以会回复查询要求的DNS Server告诉他最接近的服务器在哪里?他就回应最接近为控制testcomcn的网域的DNS主机。

《Step 9》原本被查询的DNS Server,在接收到应继续查询的位置,在向testcomcn网域的DNS Server发出寻找wwwtestcomcn的要求,最后会在testcomcn的网域的DNS Server找到wwwtestcomcn此主机的IP。

《Step 10》所以原本发出查询要求的DNS服务器,再接收到查询结果的IP位置后,响应回给原查询名称的DNS客户端。

两种真正DNS的查询模式

有两种询问原理,分为Recursive和Interactive两种。前者是由DNS代理去问,问的方法是用Interactive方式,后者是由本机直接做Interactive式的询问。由上例可以看出,我们一般查询名称的过程中,实际上这两种查询模式都是交互存在着的。

递归式(Recursive):DNS客户端向DNS Server的查询模式,这种方式是将要查询的封包送出去问,就等待正确名称的正确响应,这种方式只处理响应回来的封包是否是正确响应或是说是找不到该名称的错误讯息。

交谈式(Interactive):DNS Server间的查询模式,由Client端或是DNS Server上所发出去问,这种方式送封包出去问,所响应回来的资料不一定是最后正确的名称位置,但也不是如上所说的响应回来是错误讯息,他响应回来告诉你最接近的IP位置,然后再到此最接近的IP上去寻找所要解析的名称,反复动作直到找到正确位置。

b

1WWW的信息服务形式:超文本 超媒体

2WWW服务特点:高度的集成性

2超文本传输协议HTTP是WWW客户机与WWW服务器之间的应用层传输协议

3HTTP会话过程包括以下4个步凑:

连接 请求 应答 关闭

4URL由三部分组成: 协议类型 主机名 路径及文件名

5WWW服务器所存储的页面是一种结构化的文档,采用超文本标记语言HTML书写而成

6HTML主要特点:

通用性、建议性、可扩展性、平台无关性、支持用不同的方式创建HTML文档

7对于机构来说,主页通常是WWW服务器的缺省页,既用户在输入URL时只需要给出WWW服务器的主机名,而不必指定具体的路径和文件名,WWW服务器会自动将其缺省页返回给用户

8浏览器是一系列的客户单元、一系列的解释单元、一个控制单元组成

9Web服务器的访问控制级别

IP地址权限 用户验证 Web权限 TFS权限

10Web服务器的安全性:

IP地址限制、用户验证、Web权限、NTFS权限

11搜索引擎是因特网上的一个WWW服务器,它的主要任务是在因特网中主动搜索其他WWW服务器中的信息并对

其自动索引,将索引内容存储在可供查询的大型数据库中

现在在Internet上最热门的服务之一就是环球信息网WWW(World Wide Web)服务,Web已经成为很多人在网上查找、浏览信息的主要手段。WWW是一种交互式图形界面的Internet服务,具有强大的信息连接功能。它使得成千上万的用户通过简单的图形界面就可以访问各个大学、组织、公司等的最新信息和各种服务。商业界很快看到了其价值,许多公司建立了主页,利用Web在网上发布消息,并反它作为各种服务的界面,如客户服务、特定产品和服务的详细说明、宣传广千以及是渐增长的产品销售和服务。商业用途促进了环球信息网络的迅速发展。如果你想通过主页向世界介绍自己或自己的公司,就必须将主页放在一个WEB服务器上,当然你可以使用一些免费的主页空间来发布。但是如果你有条件,你可以注册一个域名,申请一个IP地址,然后让你的ISP将这个IP地址解析到你的LINUX主机上。然后,在LINUX主机上架设一个WEB服务器。你就可以将主页存放在这个自己的WEB服务器上,通过它把自己的主页向外发布。 WWW是基于客户机/服务器方式的信息发现技术和超文本技术的综合。WWW服务器通过HTML超文本标记语言把信息组织成为图文并茂的超文本;WWW浏览器则为用户提供基于HTTP超文本传输协议的用户界面。用户使用WWW浏览器通过Internet访问远端WWW服务器上的HTML超文本,如下图所示: http协议 WWW浏览器 <-----> WWW服务器

在WWW的客户机/服务器工作环境中,WWW浏览器起着控制作用,WWW浏览器的任务是使用一个URL(Internet地址)来获取一个WWW服务器上的WEB文档,解释这个HTML,并将文档内容以用户环境所许可的效果最大限度地显示出来。整个流程如下:

WWW浏览器根据用户输入的URL连到相应的远端WWW服务器上;

取得指定的WEB文档;

断开与远端WWW服务器的连接。 也就是说,平时我们在浏览某个网站的时候是每取一个网页建立一次连接,读完后马上断开;当需要另一个网页时重新周而复始。二、WWW服务器软件的比较和选择目前,在世界各地有许多公司和学术团体,根据不同的计算机系统,开发出不同的WWW服务器,如Apache、CERN httpd、Microsoft Internet Information System、NCSA httpd、Plexus httpd、WebSite等。在UNIX/LINUX系统中常用的有:CERN、NCSA、Apache三种

CERN httpd 这是最早期的WWW服务器软件,用C语言编写,现在功能有限,用户在缩减中。有兴趣的话可以在:ftp://ftpw3org/pub/WWW/bin中找到它。

NCSA httpd 这是在WWW服务器发展初期,美国国家超级计算机应用中心(NCSA)在1995年创建的当时一流的WWW服务器。它也是用C语言编写的,程序小、速度快。但是现在NCSA WWW服务器的主要开发人员已经离开了NCSA,这个服务器项目已经停顿了。相信大家不会选择一个没有发展的WWW服务器软件吧!当然,由于它的特殊历史地位,相信使用它的人现在还不少。如果你需要可以在ftp://ftpncsauiucedu获取它。

Apache 根据著名的WWW服务器调查公司所作的调查,世界上百分之五十以上的 WWW服务器都在使用Apache,是世界排名第一的WEB服务器。 Apache的诞生极富有戏剧性。当NCSA WWW服务器项目停顿后,那些使用NCSA WWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache。 Apache的主要特征是: 可以运行上所有计算机平台; 支持最新的HTTP 11协议; 简单而强有力的基于文件的配置; 支持通用网关接口CGI; 支持虚拟主机; 支持HTTP认证; 集成Perl脚本编程语言; 集成的代理服务器; 具有可定制的服务器日志; 支持服务器端包含命令(SSI) 支持安全Socket层(SSL) 用户会话过程的跟踪能力; 支持FastCGI; 支持Java Servlets。我们还有什么理由放弃这个功能强大而且前途光明的WWW服务器软件呢?三、安装Apache 下面我们就开始漫漫征服Apache之旅,通过循序渐进的需求实例,一步步地学习使用Apache,从入门到精通。 31 系统需求运行Apache不需要太多的计算资源。它在有6-10MB硬盘空间和8MB RAM的Linux系统上运行得很好。然而,只运行Apache可能不是你想做的事情。更可能的是,你想运行Apache来提供WWW服务、启动CGI进程以及充分利用所有WWW能够提供的令人惊奇的功能。在这种情况下,你需要提供反映负载要求的额外的磁盘空间和内存空间。也就是说,如果仅仅是启动WWW服务并不需要太多的系统资源,但是想要能为大量的客户提供服务就需要更多的系统资源。 32 获取软件你可以在http://wwwapacheorg中获得Apache的最新版。而几乎所有的Linux发行版中均包含有Apache软件包,你也可以直接使用它。需要注意的是,Apache软件包有两种:一种是源代码,下载后需要自己重新编译;另一种是可执行文件,下载后只需解压就可以使用。 33 安装软件你可以通过以下三种方法安装Apache服务器。 1.如果你安装的Linux版本中带用Apache的话,就在选择所要安装的服务器的时候,将httpd这个服务选上,Linux安装程序将自动完成Apache的安装工作,并做好基本的配置。 2.使用可执行文件软件包,这比较适合那些对编译工作不是太熟悉的初级用户,因为它相对比较简单。

下载软件包apache_124etargz

tar xvzf apache_124etargz 这就完成了安装工作,简单吧!如果你使用的是RedHat Linux的话,你也可以下载apache_124rpm软件安装包,然后使用rpm –ivh apache_124rpm命令安装。 3.如果你想把Apache服务器充分利用起来的话,就一定要自己编译Apache 定制其功能。

下载包含Apache源代码的软件包apache_124targz;

然后用tar命令将它解开;

将当前目录改变为Apache源代码发行版的src目录;

将配置样本文件(Configurationtmpl)复制为Configuration文件;

编辑Configuration文件中的配置选项:

Makefile配置选项:一些编译选项: “CC=”一行指定用什么编译软件编译,一般为“CC=gcc”; 如果需要将额外的标志(参数)指定给C编译软件,可以使用: EXTRA_CFLAGS= EXTRA_LFLAGS= 如果系统需要特殊的库和包含文件,可以在这里指定它们: EXTRA_LIBS= EXTRA_INCLUDES= 如果你要改变代码优化设置的话,你须将下面一句去掉注释,然后改成你所需要的值: #OPTIM=-O2

Rule配置选项:用来决定需要什么功能,一般情况下无需改变。

模块配置:模块是Apache的组成部分,它为Apache内核增加新功能。通过使用模块配置,可以自定义在Apache服务器中需要什么功能,这个部分也是Apache灵活性的表现。模块配置行如下所示: AddModule modules/standard/mod_envo 如果你需要Apache服务器具备什么功能,就将那个模块用AddModule语句加到配置文件Configuration中去。下表列出了Apache的模块功能:模块名 功能 缺省

mod_access 提供基于主机的访问控制命令 y

mod_actions 能够运行基于MIME类型的CGI脚本或HTTP请求方法 y

mod_alias 能执行URL重定向服务 y

mod_asis 使文档能在没有HTTP头标的情况下被发送到客户端 y

mod_auth 支持使用存储在文本文件中的用户名、口令实现认证 y

mod_auth_dbm 支持使用DBM文件存储基本HTTP认证 n

mod_auth_mysql 支持使用MySQL数据库实现基本HTTP认证 n

mod_auth_anon 允许以匿名方式访问需要认证的区域 y

mod_auth_external支持使用第三方认证 n

mod_autoindex 当缺少索引文件时,自动生成动态目录列表 y

mod_cern_meta 提供对元信息的支持 n

mod_cgi 支持CGI y

mod_dir 能够重定向任何对不包括尾部斜杠字符命令的请求 y

mod_env 使你能够将环境变量传递给CGI或SSI脚本 n

mod_expires 让你确定Apache在服务器响应请求时如何处理Expires y

mod_headers 能够操作HTTP应答头标 y

mod_imap 提供图形映射支持 n

mod_include 使支持SSI n

mod_info 对服务器配置提供了全面的描述 y

mod_log_agent 允许在单独的日志文件中存储用户代理的信息 n

mod_log_config 支持记录日志 y

mod_log_referer 提供了将请求中的Referer头标写入日志的功能 n

mod_mime 用来向客户端提供有关文档的元信息 y

mod_negotiation 提供了对内容协商的支持 y

mod_setenvif 使你能够创建定制环境变量 y

mod_speling 使你能够处理含有拼写错误或大小写错误的URL请求 n

mod_status 允许管理员通过WEB管理Apache y

mod_unique_id 为每个请求提供在非常特殊的条件下保证是唯一的标识 n 表一:Apache模块功能一览表在src目录下执行:“ /configure”;

编译Apache:执行命令“make”;

根据机器性能的不同,经历一段5-30分钟的编译,就大功告成了。

将编译好的可执行文件httpd复制到/etc/httpd/bin目录下;

将Apache发行版的配置文件:accessconf、httpdconf、mimetypes、srmconf文件复制到/etc/httpd/conf目录下。到此为止,安装完成。

34 一些说明在Red Hat Linux 60中,Apache将自己的所有配置文件和日志文件放在了“/etc/httpd”目录下,其中“/etc/httpd/conf”下为配置文件,“/etc/httpd/log”下为日志文件。同时,它将建立“/home/httpd”目录,并在其下建立三个子目录:“html/”:在这个目录下存放HTML(主页)文件;“cgi-bin/”:在这个目录下可以存放一些CGI程序;“icons/”:在这个目录下是服务器自带的一些图标。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » WWW是英文World Wide Web的所写,它是一种信息查询系统,可提供什么服务?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情