用Apache构建WEB服务器 --以前写的,帖出来,希望有些帮助:)[1]

[入库:2005年9月21日] [更新:2007年3月24日]

本文简介:


:em02:  :em02: 
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的主要特征是: 



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

支持最新的HTTP 1.1协议; 

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

支持通用网关接口CGI; 

支持虚拟主机; 

支持HTTP认证; 

集成Perl脚本编程语言; 

集成的代理服务器; 

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

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

支持安全Socket层(SSL) 

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

支持FastCGI; 

支持Java Servlets。 




安装Apache 

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


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


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

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


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

下载软件包apache_1.3.29.tar.gz                  

tar xvzf apache_1.3.29.tar.gz                  
这就完成了安装工作,简单吧! 

如果你使用的是RedHat 
Linux的话,你也可以下载apache_1.3.29.rpm软件安装包,然后使用rpm -ivh   apache_1.3.29rpm命令安装。 


3.如果你想把Apache服务器充分利用起来的话,就一定要自己编译Apache定制其功能。下载包含Apache源代码的软件包apache_xxx.tar.gz; 
然后用tar命令将它解开; 将当前目录改变为Apache源代码发行版的src目录; 将配置样本文件(Configuration.tmpl)复制为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_env.o

如果你需要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 

在src目录下执行:". /configure";  
 

 


编译Apache:执行命令"make";根据机器性能的不同,经历一段5-30分钟的编译,就大功告成了。将编译好的可执行文件httpd复制到/etc/httpd/bin目录下;将Apache发行版的配置文件:access.conf、httpd.conf、mime.types、srm.conf文件复制到/etc/httpd/conf目录下。到此为止,安装完成。 


一些说明 

本文关键:用Apache构建WEB服务器 --以前写的,帖出来,希望有些帮助:)
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top