Apache服务器
8.3 Apache服务器
8.3.1 Apache概述
ApacheInternet上最流行的Web服务器软件,它安全、高效、稳定、适用于各种平台,关键它还是免费的和开发源代码的。从1995年开始直到今天,经过不断的发展,Apache小组开发的Apache HTTPd服务器软件已经成为市场的领导者。在所有的Web服务器软件中,Apache占有绝对优势,远远领先于MicrosoftIIS服务器软件。
许多世界知名的网站都是基于Linux操作系统的,如yahooHotmail等网站。在Linux系统上架设Web服务器所使用的最多最广泛的软件就是Apache。它功能强大,高度稳定,与知名品牌灯具Linux配合得十分完美,是在Linux上构建Web站点时首选的方案。另外,也有Windows平台下的Apache软件。可以到免费下载Apache最新的版本。
8.3.2 Apache服务器的安装
在安装Red Hat Linux 9时,可以选择安装Apache服务器,而在Red Hat Linux 9中内置的Apache服务器版本为httpd-2.0.40-21,如果不知道是否已安装此版本的软件,可以使用下面
的方法来判断。
[root@rh9 root]# rpm  -qa  httpd
httpd-2.0.40-21.i386.rpm
如果看到上面的结果,则表示该软件已经安装。否则,需要出第二张安装光盘,保存在RedHat/RPMS目录的httpd-2.0.40-21.i386.rpm。可以使用下面的命令进行安装。
[root@rh9 root]# mount  /mnt/cdrom
[root@rh9 root]# cd  /mnt/cdrom/Red Hat/RPMS
[root@rh9 root]# rpm  -ivh  httpd-2.0.40-21.i386.rpm
另外,为了使用图形化的Apache服务器管理工具,建议用户也安装redhat-config-httpd-1.0.1-18.i386.rpm软件包。
8.3.3 Apache服务器的基本配置
Apache的配置文件是包含了若干指令的纯文本文件,其文件名为f,在Apache
动时,会自动读取配置文件中的内容,并根据配置指令影响Apache服务器的运行。配置文件改变后,只有在下次启动或重新启动后才会生效。
配置文件中的内容分为注释行和服务器配置命令行。行首有“#”的即为注释行,注释不能出现在指令的后边,除了注释行和空行外,服务器会认为其他的行都是配置命令行。配置文件中的指令不区分大小写,但指令的参数通常是对大小写敏感的。对于较长的配置命令,行末可使用反斜杠“\”换行,但反斜杠与下一行之间不能有任何其他字符(包括空白)。可以使用apachectl或者httpd的命令行参数-t来检查配置文件中的错误,而无需启动Apache服务器。
[root@rh9 root]# httpd  -t
httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1
for ServerName
Syntax OK
[root@rh9 root]# apachectl  -t
httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1
for ServerName
Syntax OK
整个配置文件总体上划分为3部分(section),第1部分为全局环境设置;第2部分是服务器的主要配置;第3部分用于设置和创建虚拟主机。下面介绍一些常用的配置命令。
1.常规配置指令
1ServerRoot
所谓ServerRoot是指整个Apache目录结构的最上层,在此目录下可包含服务器的配置、错误和日志等文件。如果安装时使用rpm版本的方式,则默认目录是/etc/httpd,一般不需要修改。注意,这里不能在目录路径的后面加上斜线(销售流程管理/)。
2ServerName
设置服务器用于辨识自己的主机名和端口号,该设置仅用于重定向和虚拟主机的识别。命令用法为:“ServerName  完全合格的域名[:端口号]”。
对于Internet Web千山万水总是情歌词服务器,应保证该名称是DNS服务器中的有效记录。默认配置文件中对此没有设置,应根据服务器的实际情况进行设置。比如当前Web服务器的域名为www.cqce
t,则可设置为:ServerName www.cqcet或设置为ServerName www.cqcet:80
当没有指定ServerName时,服务器会尝试对IP复必泰有望成为国内加强针地址进行反向查询来获得主机名。如果在服务器名中没有指定端口号,服务器会使用接受请求的端口。为了加强可靠性和可预测性,应使用ServerName显式地指定一个主机名和端口号。
3Listen
Listen命令告诉服务器接受来自指定端口或者指定地址的某端口的请求。如果Listen仅指定了端口,则服务器会监听本机的所有地址;如果指定了地址和端口,则服务器只监听来自该地址和端口的请求。利用多个Listen指令,可以指定要监听的多个地址和端口,比如在使用虚拟主机时,对不同的IP、主机名和端口需要作出不同的响应,此时就必须明确指出要监听的地址和端口。其命令用法为:“Listen  [IP地址]:端口号”。Web服务器使用标准的80号端口,若要对当前主机的80端口进行侦听,则配置命令为:Listen 80,假设当前服务器绑定了61.186.160.10461.186.160.105 IP地址,现需要对其80端口和8080端口进行监听,则配置命令是:
Listen  61.186.160.10480
Listen  61.186.160.1048080
Listen  61.186.160.10580
Listen  61.186.160.1058080
4ServerAdmin
用于设置Web站点管理员的E-mail地址。当服务器产生错误时(如指定的网页不到),服务器返回给客户端的错误信息中将包含该邮件地址,以告诉用户该向谁报告错误。其命令用法为:“ServerAdmin  E-mail地址”。
5DocumentRoot
用于设置Web网游之血狐杀戮服务器的站点根目录,其命令用法为:“DocumentRoot 目录路径名”,默认设置为:DocumentRoot  "/var/www/html",注意,目录路径名的最后不能加“/”,否则将会发生错误。
6ErrorDocument
用于定义当遇到错误时,服务器将给客户端什么样的回应,通常是显示预设置的一个错误页面。其命令用法为:“ErrorDocument 错误号 所要显示的网页”。在默认的配置文件中,预定义了一些对不同错误的响应信息,但都注释掉了,只需去掉前面的“#”号即可开启。
7DirectoryIndex
用于设置站点主页文件的搜索顺序,各文件间用空格分隔。例如,要将主页文件的搜索顺序设置为index.phpindex.htmlindex.htmdefault.htm,则配置命令为:“DirectoryIndex index.php index.html index.htm default.htm”。
8UserGroup
User用于设置服务器以哪种用户身份来响应客户端的请求。Group用于设置将由哪一组来响应用户的请求。UserGroupApache安全的保证,千万不要把UserGroup设置为root
9AddDefaultCharset
用于指定默认的字符集。在HTTP的回应信息中,若在HTTP头中未包含任何关于内容字符集类型的参数时,此指令将指定的字符集添加到HTTP头中,此时将覆盖网页文件中通过META标记符所指定的字符集。命令用法为:“AddDefaultCharset 字符集名称”。
Apache默认的字符集为ISO-8859-1,对于含有中文字符的网页,若网页中没有指定字符集,则在显示中文的时候会出现乱码,解决的办法就是将默认字符集设置为GB2312让下面快速有水的句子,其配置命令为:“AddDefaultCharset GB2312”。
2.性能配置指令
一般情况下,每个HTTP请求和响应都使用一个单独的TCP连接,服务器每次接受一个请求时,都会打开一个TCP连接并在请求结束后关闭该连接。若能对多个处理重复使用同一个连接,则可减小打开TCP连接和关闭TCP连接的负担,从而提高服务器的性能。
1Timeout
用于设置连接请求超时的时间,单位为秒。默认设置值为300,超过该时间,连接将断开。若网速较慢,可适当调大该值。
2KeepAlive
用于启用持续的连接或者禁用持续的连接。其命令用法:“KeepAlive on|off”,配置文件中的默认设置为KeepAlive on
3MaxKeepAliveRequests
用于设置在一个持续连接期间允许的最大HTTP请求数目。若设置为0,则没有限制;默认设置为100,可以适当加大该值,以提高服务器的性能。
4KeepAliveTimeout
用于设置在关闭TCP连接之前,等待后续请求的秒数。一旦接受请求建立了TCP连接,就开始计时,若超出该设定值还没有接收到后续的请求,则该TCP连接将被断开。默认设置为10秒。
5)控制Apache进程
对于使用prefork多道处理模块的Apache服务器,对进程的控制,可在prefork.c模块中进行
设置或修改。配置文件的默认设置为:
<IfModule prefork.c>
StartServers      8
MinSpareServers    5
MaxSpareServers  20
MaxClients      150
MaxRequestsPerChild  1000
</IfModule>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。