/ 中存储网

Apache服务器的配置介绍

2013-10-18 08:01:01 来源:kejihao

Apache服务器软件介绍

网站只有发布以后,用户才能通过Web浏览器访问到该网站中的信息资源。Web服务器软件就是用于发布网站的服务器,而Apache是世界使用排名第一的Web服务器软件,它可以运行在几乎所有广泛使用的计算机平台上。

Apache服务器所提供的资源其实就是一些文件,因此,管理员必须在服务器端先将数据文件写好,并放置在某个特殊的目录下,这个目录就是整个网站的首页位置。另外,客户端必须在浏览器的“地址栏”输入所需要的网址才行。

主要以Linux下源代码包的安装方法介绍Apache服务器的配置

Apache服务器的目录结构

在Linux系统下使用源代码包安装Apache时,我们将Apache服务器的家目录设置在/usr/local/apache2目录下面。在学习Apache服务器配置之前首先了解一下Apache的目录结构

Bin:是Apache执行文件所在的目录。例如,Apache的主要执行文件apachectl,使用这个命令可以用来控制Apache服务器开启或停止。还有Apache的密码保护文件htpasswd,当用户在某些网页需要输入账号与密码时,Apache本身提供一个最基本的密码保护方式,该密码的产生就是透过这个指令来完成的

cgi-bin:预设给一些可执行的CGI网页程序存放的目录,当用户输入http://localhost/cgi-bin/时所显示的数据所存储的目录

error:默认错误应答文件目录。如果因为服务器设置或者浏览器要求的数据错误时,在浏览器上出现的错误信息存放的位置

htdocs:默认Web文档根目录,就是用户存放网页和存放默认首页的位置。用户通过浏览器中输入地址访问这个下面的文件,并将文件内容传回给用户浏览器,显示成美妙的页面供给用户浏览

icons:这个目录提供Apache预设给予的一些小图示

Logs:Apache日志文件存放的位置。其中包括访问日志access_log和错误日志error_log文件。访问日志access_log记录了所有对Web服务器的访问活动,例如,记录了客户端的IP地址和在什么时间访问了哪个页面等信息。错误日志error_log记录了所有对Web服务器的错误访问活动

Man:Apache服务器配置文件的帮助手册所在目录

modules:Apache服务器所支持的动态加载模块所在的位置

Apache服务器配置库文件目录

除了要了解Apache家目录下的子目录的作用,还有两个比较重要的目录需要掌握,就是存入Apache配置文件和子配置文件的两个目录,如下所示:

/etc/httpd/目录:在通过源代码包安装Apache时,为Apache指定的主配置文件httpd.conf存放的目录。

/etc/httpd/extra/目录:该目录为Apache扩展及模块配置文件目录。最新版本Apache服务器不仅有一个httpd.conf作为主配置文件,还存在一些辅助配置文件被存放在这个目录下。

Apache服务器配置文件说明

/etc/httpd/httpd.conf 主配置文件

/etc/httpd/extra/              //显示/etc/httpd/extra/下面的所有附加配置文件

httpd-autoindex.conf                   //配置目录列表的辅配置文件

httpd-dav.conf                         //配置DAV的辅配置文件

httpd-default.conf                     //配置与Apache服务自身相关的辅配置文件

httpd-info.conf                        //配置用于服务器信息和状态显示的辅配置文件

httpd-languages.conf                   //配置语言支持的辅配置文件

httpd-manual.conf                      //配置提供Apache文档访问的辅配置文件

httpd-mpm.conf                         //配置多路处理模块(MPM) 的辅配置文件

httpd-multilang-errordoc.conf       //配置多语言错误应答的辅配置文件

httpd-ssl.conf                         //配置SSL模块的辅配置文件

httpd-userdir.conf                     //配置用户主目录的辅配置文件

httpd-vhosts.conf                      //配置虚拟主机的辅配置文件

配置文件的语法格式

以“#”作为注释符 ,注解不能出现在指令的后边

使用变量赋值语法风格

文件的每一行包含一个指令,它告诉Apache服务器以某种特定的方式完成某一项特定的任务

在指令的行尾使用反斜杠“”可以表示续行,但是反斜杠与下一行之间不能有任何其他字符(包括空白字符)

配置文件中的指令是不区分大小写的,但是指令的参数(argument)通常是大小写敏感的

空白行和指令前的空白字符将被忽略,因此可以采用缩进以保持配置层次的清晰

要特别注意即使平台本身是使用反斜杠()来分隔路径的 ,通常在配置文件里只用正斜杠(/)来分隔路径总是不会错的

Apache容器段指令(下节介绍)

Apache服务器全局参数设置

在Apache 2.2以上以源码包安装的版本中,主配置文件httpd.conf中只包含少量的必须使用的一些与服务自身相关的指令,大部分指令都被分散保存在辅助配置文件中。可以用Include指令和通配符附加这些辅助配置文件到主配置文件httpd.conf中,但默认不附加任何其他辅助配置文件。如果使用其他辅助配置文件中的设置,就需要手动在主配置文件中加载。

在主配置文件httpd.conf中的全局参数

ServerRoot "/usr/local/apache2"            #设置服务器目录的绝对路径

 #Listen 12.34.56.78:80                     #允许Apache绑定指定的IP或者端口,实现对其监听

 Listen                                 #Apache绑定指定的端口80

 #以下几行加载特定的DSO(Dynamic Shared Object)模块

 LoadModule deflate_module modules/mod_deflate.so

 LoadModule expires_module modules/mod_expires.so

 LoadModule rewrite_module modules/mod_rewrite.so

 LoadModule php5_module   modules/libphp5.so    #动态加载php5模块

 #设置子进程的用户和组,<IfModule test>...</IfModule>配置段用于封装根据指定的模块是否启用而决定是否生效的指令。在<IfModule>配置段中的指令仅当test为真的时候才进行处理。如果test为假,所有其间的指令都将被忽略

 <IfModule !mpm_netware_module>

 <IfModule !mpm_winnt_module>

 User daemon                    #设置实际提供服务的子进程的用户

 Group daemon                   #设置提供服务的Apache子进程运行时的用户组

 </IfModule>

 </IfModule>

 ServerAdmin [email protected]            #设置在返回给客户端的错误信息中包含的管理员邮件地址

 #ServerName www.example.com:80         #设置服务器用于辨识自己的主机名和端口号

 DocumentRoot "/usr/local/apache2/htdocs"    #设置Web文档根目录,默认存放网页位置

 <IfModule dir_module>

 DirectoryIndex index.html              #指令用于指定目录中默认的索引文件名称

 </IfModule>

附加配置文件httpd-default.conf中的全局参数

Timeout  #服务器在断定请求失败前等待的秒数

 KeepAlive On #启用HTTP持久链接

 MaxKeepAliveRequests  #一个持久链接中允许的最大请求数量

 KeepAliveTimeout  #持久链接中服务器在两次请求之间等待的秒数

 HostnameLookups Off #启用对客户端IP的DNS查找

附加配置文件httpd-mpm.conf中的全局参数

#设置prefork多路处理模块

 <IfModule mpm_prefork_module>

 StartServers                      #设置服务器启动时建立的子进程数量

 MinSpareServers              #设置空闲子进程的最小数量

 MaxSpareServers              #设置空闲子进程的最大数量

 MaxClients                      #设置Apache的最大连接数

 MaxRequestsPerChild              #设置每个子进程在其生存期内允许伺服的最大请求数量

 </IfModule>