Web 服务器配置和管理

第3 篇  网络服务管理篇 
 第16 章  Web 服务器配置和管理 
Web 服务是目前Internet 上最常见的服务之一,要搭建一个Web 服务器,首先要选择
一套合适的Web 程序。在本章中将会以强大的Apache 为例,介绍相关的安装、配置、维
护和高级功能等方面的知识,演示如何在Linux 操作系统下构建基于Apache 的Web 服        
务器。 
16.1  Web 服务器简介 
万维网又称为Web(World Wide Web,www),是在Internet 上以超文本为基础形成
的信息网。用户通过浏览器可以访问Web 服务器上的信息资源,目前在Linux 操作系统上
最常用的Web 服务器软件是Apache。本节将简单介绍Web 服务器的历史以及工作原理,
并介绍Apache 的特点以及它的功能模块。 
16.1.1  Web 服务的历史和工作原理 
Internet 上最热门的服务之一就是万维网,它是在因特网上以超文本为基础形成的信息
网。用户通过它可以查阅Internet 上的信息资源,例如,平时上网使用浏览器访问网站信
息就是最常见的应用。 
Web 在1989 年起源于欧洲的一个国际核能研究院中,由于随着研究的深入和发展,
研究院里的文件数量越来越多,而且人员流动也很大,要找到相关的最新的资料非常困难。
于是一个科学家就提出了这样一个建议:在服务器上维护一个目录,目录的链接指向每个
人的文件;每个人维护自己的文件,保证别人访问的时候总是最新的文档,这个建议得到
采纳并被不断完善后,最终形成如今Internet 上最常见的WWW 服务。 
Web 系统是客户/服务器模式(C/S)的,所以有服务器端和客户端程序两部分。常用
的服务器有Apache、IIS 等,常用的客户端浏览器有如IE、Netscape、Mozilla 等,用户在
浏览器的地址栏中输入统一资源定位地址(URL)来访问Web 页面。 
Web 页面是以超文本标记语言(HTML)进行编写,它使得文本不再是传统的书页式
文本,而是可以在浏览过程中从一个页面位置跳转到另一个页面。使用HTML 语言编制的
Web 页面除文本信息外,还可以嵌入声音、图像、视频等多媒体信息。WWW 服务遵循
HTTP 协议,默认的端口为80,Web 客户端与Web 服务器的通信过程如图16.1 所示。 
通信的过程分为以下3 步。 
第16 章  Web 服务器配置和管理 
(1)Web 客户端通过浏览器根据用户输入的URL 地址连接到相应的Web 服务器上。 
(2)从Web 服务器上获得指定的Web 文档。 
 
图16.1  Web 工作原理  
(3)断开与远程的Web 服务器的连接。 
用户每次浏览网站获取一个页面,都会重复上述的连接过程,周而复始。 
16.1.2  Apache 简介 
Apache 是一种开源的HTTP 服务器软件,可以在包括UNIX、Linux 以及Windows 在
内的大多数主流计算机操作系统中运行,由于其支持多平台和良好的安全性而被广泛使用。
Apache 由Illinois 大学Urbana-Champaign 的国家高级计算程序中心开发,它的名字取自      
apatchy server 的读音,即充满补丁的服务器,可见在最初的时候该程序并不是非常完善。 
但由于Apache 是开源软件,所以得到了开源社区的支持,不断开发出新的功能特性,
并修补了原来的缺陷。经过多年来不断的完善,如今的Apache 已是最流行的Web 服务器
端软件之一。Apache 拥有以下众多的特性,保证了它可以高效稳定地运行。 
? 支持几乎所有的计算机平台。 
? 简单有效的配置文件。 
? 支持虚拟主机。 
? 支持多种方式的HTTP 认证。 
? 集成Perl 脚本语言。 
? 集成代理服务器模块。 
? 支持实时监视服务器状态和定制服务器日志。 
? 支持服务器端包含指令(SSI)。 
? 支持安全Socket 层(SSL)。 
? 提供用户会话过程的跟踪。 
? 支持PHP。 
? 支持FastCGI。 
? 支持Java Servlets。 
? 支持通用网关接口。 
? 支持第三方软件开发商提供的功能模块。 
第3 篇  网络服务管理篇 
 ·386·
16.1.3  Apache 的模块 
Apache 采用模块化的设计,模块安装后就可以为Apache 内核增加相应的新功能。默
认情况下Apache 已经安装了部分的模块,用户也通过使用模块配置,自定义Apache 服务
器中需要安装哪些功能,这也是Apache 灵活性的表现。如表16.1 列出了Apache 全部的默
认模块和部分常用的非默认模块。 
表16.1  Apache 模块列表 
模  块  名 功 能 说 明 是否默认安装 
mod_actions 运行基于MIME 类型的CGI 脚本 是 
mod_alias 支持虚拟目录和页面重定向 是 
mod_asis 发送包含自定义HTTP 头的文件 是 
mod_auth_basic 基本验证 是 
mod_auth_digest 使用MD5 加密算法的用户验证 否 
mod_authn_alias 允许使用第三方验证 否 
mod_authn_anon 允许匿名用户访问认证的区域 否 
mod_authn_dbd 使用数据库保存用户验证信息 否 
mod_authn_dbm 使用DBM 数据文件保存用户验证信息 否 
mod_authn_default 处理用户验证失败 是 
mod_authn_file 使用文本文件保存用户验证信息 是 
mod_authnz_ldap 使用LDAP 目录进行用户验证 否 
mod_authz_default 处理组验证失败 是 
mod_authz_groupfile 使用plaintext 文件进行组验证 是 
mod_authz_host 基于主机的组验证 是 
mod_authz_user 用户验证模块 是 
mod_autoindex 生成目录索引 是 
mod_cache 通向URI 的内容Cache 否 
mod_cgi 支持CGI 脚本 是 
mod_cgid 使用外部CGI 进程运行CGI 脚本 是 
mod_dir 提供用于trailing slash 的目录和索引文件 是 
mod_env 调整传输给CGI 脚本和SSI 页面的环境变量 是 
mod_example 解释Apache 模块的API 否 
mod_filter 过滤信息 是 
mod_imagemap imagemap 处理 是 
mod_include 解析HTML 文件 是 
mod_isapi ISAPI 扩展 是 
mod_ldap 使用第三方LDAP 模块进行LDAP 连接和服务 否 
mod_log_config 记录发给服务器的访问请求 是 
mod_logio 记录每个请求输入、输出的字节数 否 
mod_mime 联合被请求文件扩展名和文件行为的内容 是 
mod_negotiation 提供内容协商 是 
第16 章  Web 服务器配置和管理 
 ·387·
mod_nw_ssl 为NetWare 打开SSL 加密 是 
mod_proxy 支持HTTP1.1 协议的代理和网关服务器 否 
mod_proxy_ajp mod_proxy 的AJP 支持模块 否 
mod_proxy_balancer mod_proxy 的负载均衡模块 否 
mod_proxy_ftp mod_proxy 的FTP 支持模块 否 
mod_proxy_http mod_proxy 的HTTP 支持模块 否 
mod_setenvif 允许设置基于请求的环境变量 是 
mod_so 在启动或重启时提高可执行编码和模块的启动 否 
续表 
模  块  名 功 能 说 明 是否默认安装 
mod_ssl 使用SSL 和TLS 的加密 否 
mod_status 提供服务器性能运行信息 是 
mod_userdir 设置每个用户的网站目录 是 
mod_usertrack 记录用户在网站上的活动 否 
mod_vhost_alias 提供大量虚拟主机的动态配置 否 
关于Apache 模块的自定义安装和模块的使用将在后面的章节中陆续进行讲解。 
16.2  Apache 服务器的安装 
本节以 2.2.9 版本的 Apache 为例,介绍如何获得并通过源代码安装包在 Red Hat 
Enterprise Linux 5.2 上安装Apache 服务器;如何启动关闭Apache 服务;如何检测Apache
服务的状态,以及配置Apache 服务的开机自动运行。 
16.2.1  如何获取Apache 软件 
Redhat Linux AS 5.2 自带了Apache,版本为2.2.3。用户只要在安装操作系统的时候把
http server 选项选中,Linux 安装程序将会自动完成Apache 的安装工作。如果在安装操作
系统时没有安装Apache,也可以通过安装光盘中的RPM 软件包进行安装,所需的RPM 软
件包如下所示。 
 
httpd-2.2.3-11.el5_1.3.i386.rpm 
httpd-manual-2.2.3-11.el5_1.3.i386.rpm  为了能获取最新版本的Apache,可以从Apache 官方网站
www.apache.org  下载该软件
的源代码安装包,包括gz 和bz2 两种压缩方式。截至本书定稿前,最新的Apache 版本为
2.2.9,下载页面如图16.2 所示。 
第3 篇  网络服务管理篇 
 
16.2  Apache 官方网站 
下载后把httpd-2.2.9.tar.gz 文件保存到/tmp 目录下即可。  
16.2.2  安装Apache 服务器 
Apache 对系统的软件和硬件环境都有所要求,在安装前需要检查系统环境是否能满足
要求。检查完成后,先解压安装包文件,然后进行源代码的编译和安装。接下来将以Apache 
2.2.9 的源代码安装包为例,详细介绍Apache 在Red Hat Enterprise Linux 5.2 上的完整安装
过程,如下所述。 
(1)安装Apache 的硬件和软件配置要求。 
? 确保磁盘至少有50MB 的空闲空间。 
? 确保操作系统已经安装并正确配置了gcc。 
(2)把httpd-2.2.9.tar.gz 文件解压,执行如下命令: 
 
tar -xzvf httpd-2.2.9.tar.gz  
文件将会被解压到httpd-2.2.9 目录下。 
(3)进入httpd-2.2.9 目录,使用configure 命令配置安装参数,configure 命令的格式为: 
 
configure [OPTION]... [VAR=VALUE]...  
关于configure 命令的选项和参数说明可以通过下面命令获得。 
 
./configure --help  
这里只介绍几个常用的配置参数,如下所示。 
? --prefix 参数:默认情况下Apache 会安装在/usr/local/apache2 目录下,该参数用于
自定义Apache 的安装目录。例如,要把Apache 安装到/usr/local/apache 目录下,
可以使用./configure –prefix=/usr/local/apache 配置命令。 
第16 章  Web 服务器配置和管理 
 ·389·
? --enable-modules 参数:用于指定除默认模块以外需要额外安装的Apache 模块,不
同的模块之间以空格分隔。关于Apache 常用模块的功能在16.1.3 节中已有详细说
明。例如,要安装 mod_proxy 和 mod_ssl 两个模块,可以使用./configure 
--enable-modules="proxy ssl"配置命令。 
? --enable-mods-shared 参数:与--enable-modules 参数一样,该参数同样用于指定需
要额外安装的 Apache 模块,参数格式也是一样。所不同的是,--enable-modules
参数指定安装的模块在Apache 运行的时候就会自动载入,而--enable-mods-shared
参数所指定的Apache 模块需要使用LoadModule 指令进行载入。 
在这里只采用默认安装,所以直接运行./configure 即可,运行结果如图16.3 所示。 
(4)编译并安装Apache,如下所示。 
 
make 
make install  
运行结果分别如图16.4 和图16.5 所示。 
 
图16.3  配置安装参数 
第3 篇  网络服务管理篇 
 
图16.4  编译Apache 
 
图16.5  安装Apache 
16.2.3  启动和关闭Apache 
安装完成后就可以启动Apache 服务。Apache 的启动关闭都是通过<Apache 安装目录>        
/bin 目录下的apachectl 命令进行管理的。启动Apache 服务,如下所示。 
 
./apachectl start  
关闭Apache 服务,如下所示。 
 
./apachectl stop  
重启Apache 服务,如下所示。 
 
./apachectl restart 
第16 章  Web 服务器配置和管理 
 
安装Apache 后,在没有对httpd.conf 配置文件做任何修改之前启动Apache 服务会得
到一些警告信息,如图16.6 所示。 
因为httpd.conf 配置文件中的ServerName 参数没有设置,但是这不会影响Apache 的
正常运行,关于httpd.conf 配置文件的修改会在16.3.2 和16.3.3 小节中进行讲解。 
除此之外,在正常情况下启动Apache 服务是不会有任何警告或者错误信息输出的,
如果出现如图16.7 所示的错误信息,用户就应该检查一下是否有其他进程占用了80 端口。 
    
          图16.6  第一次启动的报警信息                       图16.7  错误信息 
16.2.4  检测Apache 服务 
要检测Apache 服务是否正在运行,可以通过检查Apache 进程状态或者直接通过浏览
器访问Apache 发布的网站页面来确定。 
1.检查Apache进程 
可以通过以下命令检查Apache 进程的状态。 
 
ps -ef | grep httpd  运行结果如图16.8 所示。Apache 运行后会在操作系统中创建多个httpd 进程,能在操
作系统中查找到httpd 进程,表示Apache 正在运行。 
2.检查Apache页面 
通过查看进程的方法只能确定Apache 是否正在运行,但要检查Apache 的运行是否正
常,最直接有效的方法就是通过浏览器查看Apache服务器发布的页面。默认安装后,Apache
网站的首页是一个测试页面,用户可以通过它来检查 Apache 是否运行正常,如图 16.9          
所示。 
 
第3 篇  网络服务管理篇 
图16.8  查看Apache 进程 
 
图16.9  Apache 测试页面 
16.2.5  让Apache 自动运行 
Red Hat Enterprise Linux 5.2 可以支持程序服务的开机自动运行,如果要配置Apache
服务在服务器启动的时候自动运行,可以编写启动和关闭Apache 服务的脚本,然后进行
相应的配置。具体步骤如下所述。 
(1)编写启动和关闭Apache 服务的脚本,脚本文件名为httpd,并存放到/etc/rc.d/init.d
目录下。下面分几个部分对脚本的内容进行说明,用户只需要按顺序把这些代码添加到
httpd 文件中即可。设置Apache 服务与chikconfig 相关的选项,并执行初始化环境变量的
脚本,代码如下所示。 
 
#!/bin/sh // 设置与chkconfig 相关的选项 
#chkconfig :345 85 15    //设置启动级别以及启动顺序 
#description:some words you like!! //描述信息 
# Source function library. 
. /etc/rc.d/init.d/functions  //执行/etc/rc.d/init.d/functions 脚本 
// 调用系统初始化脚本 
# Source function library. 
if [ -f /etc/init.d/functions ] ; then 
  . /etc/init.d/functions   //执行. /etc/init.d/functions 脚本 
elif [ -f /etc/rc.d/init.d/functions ] ; then 
  . /etc/rc.d/init.d/functions  //执行. /etc/rc.d/init.d/functions 脚本 
else 
  exit 0        //如果找不到上述脚本则结束本脚本的运行 
fi  
设置与启动关闭Apache 服务相关的选项,代码如下所示。 
 //获取命令输入的参数 
ARGV="$@" //设置httpd 命令的路径 
HTTPD='/usr/local/apache2/bin/httpd' //如果envvars 文件存在,则执行envvars 文件设置Apache 的环境变量 
if test -f /usr/local/apache2/bin/envvars; then 
  . /usr/local/apache2/bin/envvars //执行/usr/local/apache2/bin/envvars 
fi  //设置命令行的HTML 格式 
LYNX="links -dump" //设置mod_status 模块的状态页面的URL 
第16 章  Web 服务器配置和管理 
 ·393·
STATUSURL="
http://localhost:80/server-status
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值