|
1.Apache服务器软件介绍
网站只有发布以后,用户才能通过Web浏览器访问到该网站中的信息资源。Web服务器软件就是用于发布网站的服务器,而Apache是世界使用排名第一的Web服务器软件,它可以运行在几乎所有广泛使用的计算机平台上。
pApache服务器所提供的资源其实就是一些文件,因此,管理员必须在服务器端先将数据文件写好,并放置在某个特殊的目录下,这个目录就是整个网站的首页位置。另外,客户端必须在浏览器的“地址栏”输入所需要的网址才行。
p主要以Linux下源代码包的安装方法介绍Apache服务器的配置
2.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服务器所支持的动态加载模块所在的位置 | 3.Apache服务器配置库文件目录
p除了要了解Apache家目录下的子目录的作用,还有两个比较重要的目录需要掌握,就是存入Apache配置文件和子配置文件的两个目录,如下所示:
n/etc/httpd/目录:在通过源代码包安装Apache时,为Apache指定的主配置文件httpd.conf存放的目录。
n/etc/httpd/extra/目录:该目录为Apache扩展及模块配置文件目录。最新版本Apache服务器不仅有一个httpd.conf作为主配置文件,还存在一些辅助配置文件被存放在这个目录下。
4.Apache服务器配置文件说明
p/etc/httpd/httpd.conf 主配置文件
p/etc/httpd/extra/ //显示/etc/httpd/extra/下面的所有附加配置文件
phttpd-autoindex.conf //配置目录列表的辅配置文件
phttpd-dav.conf//配置DAV的辅配置文件
phttpd-default.conf //配置与Apache服务自身相关的辅配置文件
phttpd-info.conf//配置用于服务器信息和状态显示的辅配置文件
phttpd-languages.conf//配置语言支持的辅配置文件
phttpd-manual.conf//配置提供Apache文档访问的辅配置文件
phttpd-mpm.conf //配置多路处理模块(MPM) 的辅配置文件
phttpd-multilang-errordoc.conf //配置多语言错误应答的辅配置文件
phttpd-ssl.conf//配置SSL模块的辅配置文件
phttpd-userdir.conf//配置用户主目录的辅配置文件
phttpd-vhosts.conf//配置虚拟主机的辅配置文件
5.配置文件的语法格式
p以“#”作为注释符 ,注解不能出现在指令的后边
p使用变量赋值语法风格
p文件的每一行包含一个指令,它告诉Apache服务器以某种特定的方式完成某一项特定的任务
p在指令的行尾使用反斜杠“\”可以表示续行,但是反斜杠与下一行之间不能有任何其他字符(包括空白字符)
p配置文件中的指令是不区分大小写的,但是指令的参数(argument)通常是大小写敏感的
p空白行和指令前的空白字符将被忽略,因此可以采用缩进以保持配置层次的清晰
p要特别注意即使平台本身是使用反斜杠(\)来分隔路径的 ,通常在配置文件里只用正斜杠(/)来分隔路径总是不会错的
6.Apache服务器全局参数设置
在Apache 2.2以上以源码包安装的版本中,主配置文件httpd.conf中只包含少量的必须使用的一些与服务自身相关的指令,大部分指令都被分散保存在辅助配置文件中。可以用Include指令和通配符附加这些辅助配置文件到主配置文件httpd.conf中,但默认不附加任何其他辅助配置文件。如果使用其他辅助配置文件中的设置,就需要手动在主配置文件中加载。
7.在主配置文件httpd.conf中的全局参数
ServerRoot "/usr/local/apache2"#设置服务器目录的绝对路径
#Listen 12.34.56.78:80#允许Apache绑定指定的IP或者端口,实现对其监听
Listen 80#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_modulemodules/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 you@example.com#设置在返回给客户端的错误信息中包含的管理员邮件地址
#ServerName www.example.com:80#设置服务器用于辨识自己的主机名和端口号
DocumentRoot "/usr/local/apache2/htdocs"#设置Web文档根目录,默认存放网页位置
<IfModule dir_module>
DirectoryIndex index.html#指令用于指定目录中默认的索引文件名称
</IfModule>
8.附加配置文件httpd-default.conf中的全局参数
Timeout 300#服务器在断定请求失败前等待的秒数
KeepAlive On
#启用HTTP持久链接
MaxKeepAliveRequests 100
#一个持久链接中允许的最大请求数量
KeepAliveTimeout 5
#持久链接中服务器在两次请求之间等待的秒数
HostnameLookups Off
#启用对客户端IP的DNS查找
9.附加配置文件httpd-mpm.conf中的全局参数
#设置prefork多路处理模块<IfModule mpm_prefork_module>
StartServers5#设置服务器启动时建立的子进程数量
MinSpareServers5#设置空闲子进程的最小数量
MaxSpareServers10#设置空闲子进程的最大数量
MaxClients150#设置Apache的最大连接数
MaxRequestsPerChild0#设置每个子进程在其生存期内允许伺服的最大请求数量
</IfModule>
|
|
|
|
|
|
|