`
liuzhaomin
  • 浏览: 207708 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
阅读更多

//本文是《Apache源代码全景分析》第二卷《体系结构和核心模块》中的第八章《配置文件管理》的草稿部分中,主要描述Apache中的指令概念,在后续的章节中我们将继续深入Apache中的配置文件的处理细节,包括Apache如何读取命令行参数,如何读取配置文件,如何执行配置文件中的指令以及如何存储指令等等。

//本文可以任意转载和阅读,但是不允许出现在任何盈利性质的出版物和印刷品中,任何部分抄袭或者全局抄袭都将保留法律诉讼的权力。
//转摘请保留上面的文字,并著名出处:http://blog.csdn.net/tingya

配置文件管理

Apache作为一个强大的非常灵活的Web服务器,配置文件功不可没,通过修改和调整配置文件,用户可以将Apache的功能发挥到极限。事实上,大部分的Apache管理员的工作就是调整Apache的配置文件,调整指令的参数。但是Apache的配置文件也是庞大的,指令的数目就够令人望而生畏,而且还在不断的扩充之中。尽管目前有很多的Apache的管理宝典之类的书指导用户如何使用这些指令,但是大部分的系统管理员对配置文件的机制已经指令的内部运行并不能很好的理解。它们并不了解指令是如何对Apache产生效果的,因此指令的使用也仅仅是人云亦云,简单模范而已。

古人云:知其然而知其所以然。或者说“授之以鱼,不如授之以渔”。本章我们将详细的对Apache的配置文件进行了深入的剖析,同时我们将追踪配置指令的作用流程,从而明白配置文件是如何产生效果的,部分的内容我们可能需要放到下一章结合模块部分描述。


4.1 Apache配置系统

<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False"><span lang="EN-US"><font face="Verdana">4.1.1</font></span></chsdate>配置系统概述

在第七章我们描述worker MPM的时候曾经提到过系统中每个进程所能产生的线程数目并不是任意的,而是通过指令ThreadsPerChild指定的,同时系统中所能产生的进程数目也不是无限的,这由指令ServerLimit指令指定,比如

ThreadsPerChild 25

ServerLimit 16

上面的指令指定每个进程所能产生的线程数目为25个,而进程的最大产生数目为16

那么这些指令应该保存在哪儿?Apache是什么时候读取这些指定的?它是怎么读取的?读取之后这些指令保存在哪儿,怎么保存的?这些指令最终是如何影响Apache的行为的呢?这些都是Apache配置系统需要解决的问题.

从整体上描述Apache配置系统,它应该包含三个主要部分:

1)、配置文件。通常情况下,配置系统会指定一些固定的文件作为配置文件,比如目前最主要的配置文件就是httpd.conf

2)、配置指令。配置系统必须能够决定各个指令的含义,这样配置系统才能够正确的对其进行解释和处理。配置正确的指令或者是默认的值,或者由管理员进行修改;而解释配置指令则由Apache的核心以及各个模块来处理。

3)

本章我们先重点描述前两个部分,在模块章节中我们描述第三部分。

4.2 配置文件

Apache服务器的配置是通过文本格式的配置文件来实现的,在文本文件中包含逐条的配置指令,正是通过这些逐条的指令从而实现对Apache运行的方方面面进行控制。在Apache2.0中涉及到的配置文件包括下面的两种:

httpd.conf

httpd.confApache中最重要的配置文件,通常位于$ServerRoot下的conf目录中。不过在一些特殊的发行版本中,可能并不是这个名字,比如在许多支持SSLApache二进制发行版本中都会将二进制文件命名为httdsd,与之对应,配置文件也相应的改名为httdsd.conf。不管名称如何,文件内部的指令都是一样的。Httpd.conf是默认的配置文件,一般情况下不建议对其进行修改,因此通常的建议是你重新拷贝一份,对该拷贝进行修改,因此这种情况下,你可以在指令行中使用-f参数来指定新的非默认的配置文件。

Apache 1.3.13 起通过-f指令不仅可以指定配置文件,还可以指定配置目录,即,如果配置文件是一个目录,Apache会解析该目录及其子目录中的所有文件作为配置文件。一种可能的用途是,可以通过在这个目录中建立小的配置文件来设置虚拟主机,这样就可以简单地增加和删除虚拟主机,而不用修改其他任何文件,使类似操作的自动化容易了许多。

通常,在服务器启动的时候,该文件被读取处理一次,同时在每次重新启动的时候又会被处理一次,因此对配置文件的任何修改都要等待到服务器重启后才能生效。

.htaccess

httpd.conf文件通常用于控制全局的配置信息,但是有的时候Apache需要提供目录级别的控制,比如定制特定目录被访问或者被列表显示等等。尽管httpd.conf内部提供了相关的目录配置指令,但是如果需要控制的目录数目较大的话,httpd.conf无疑会急剧膨胀。因此Apache中提供了另外的一种目录级别的配置,就是.htaccess。通常情况下,.htaccess文件位于需要进行控制的目录之内,因此系统中可能存在多个.htaccess。每个.htaccesss文件都有能力为它所处的目录以及所有的子目录设置授权、目录索引、过滤器以及其余的各种相关指令。因为.htaccess文件总是包含在用户自己的共享目录文档中,因此用户完全可以建立、更新和修改自己的.htaccess文件,而不需要直接去修改httpd.conf文件,从而可以保证httpd.conf的安全性,你要知道,每个人都去修改httpd.conf的话,造成的问题,你可能甚至都无法预料。

access.confsrm.conf[1]

Apache1.3以前的版本中,除了httpd.conf.htaccess之外,还有两个相关的配置文件,就是access.confsrm.confaccess.conf用于配置服务器的访问权限,控制不同用户和计算机的访问限制,srm.conf是服务器的资源映射文件,告诉服务器各种文件的MIME类型,以及如何支持这些文件。这两个文件都是从NCSA服务器继承而来的,具体的文件可以通过httpd.conf中的AccessConfigResourceConfig指令进行指定。不过从Apache1.3开始,这两个文件就已经废弃不用了,因此在Apache2.0中你看不到这两个文件,不过如果你非要设置AccessConfigResourceConfig指令,那么你可以将它们设置为“/dev/null”

除了这三个设置文件之外,Apache还使用mime.types文件用于标识不同文件 。其文件名由TypesConfig指定,缺省时是mime.types。对应的MIME类型, magic文件设置不同MIME类型文件的一些特殊标识,使得Apache 服务器从文档后缀不能判断出文件的MIME 类型时,能通过文件内容中的这些特殊标记来判断文档的MIME类型。

4.1描述了各个配置文件在整个请求中的的位置。

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 368.25pt; HEIGHT: 158.25pt; mso-wrap-distance-left: 9.05pt; mso-wrap-distance-right: 9.05pt; mso-position-horizontal-relative: page; mso-position-vertical-relative: page" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.png"></imagedata><lock aspectratio="f" v:ext="edit"></lock></shape>

4.1 配置文件处理

从上图中我们可以看出四个配置文件的处理时机是不一样的:在Apache启动或者重新启动的时候三个文件httpd.confaccess.conf以及srm.conf都会被处理,而.htaccess只有在特定的HTTP请求到来的时候才有可能被处理。

<shape id="_x0000_i1026" style="WIDTH: 477pt; HEIGHT: 318.75pt; mso-wrap-distance-left: 9.05pt; mso-wrap-distance-right: 9.05pt; mso-position-horizontal-relative: page; mso-position-vertical-relative: page" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.png"></imagedata><lock aspectratio="f" v:ext="edit"></lock></shape>

4.2 配置文件在整个Apache中的位置

4.3 指令相关概念

<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False"><span lang="EN-US">4.3.1</span></chsdate>指令概述

由于Apache只定义了一些配置的框架和配置段规则,因此Apache配置文件的结构通常很容易理解。每个可用的指令以及指令的参数并不是由Apache核心决定的,而是由模块完全决定并实现和控制。因此,一般情况下,Apache配置文件的结构可以使用如下的语法片段进行描述:

configuration ::= directive*

directive ::= section-directive | simple-directive

section-directive ::= section-open configuration section-close

section-close ::= “<”directive-name directive-argument*”>”

simle-directive ::= directive-name directive-argument*

directive-name ::= “directory” | “documentroot”|…

directive-argument ::=

换句话说,一个Apache配置文件可能是一个空文件,或者是包含了一个或者多个配置的指令,每个指令包含指令名称以及指令所需要的参数。指令的名称唯一的标识该指令本身,指令参数差异性则很大,参数类型,参数的个数都不尽相同,下面的是一个指令片断:

……

ServerRoot “C:/Program Files/Apache Group/Apache<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="2" unitname="”">2”</chmetcnv>

TimeOut 30

<Directory “C:/Program Files/Apache Group/Apache2/manual”>

Options Indexs

<Files *.html>

SetHandler type-map

</Files>

</Directory>

……

从上面的片断可以看出,指令只是用于控制Apache的简单的命令而已,Apache从配置文件中读取这些指令,然后执行相应的操作从而实现执行这些指令。通过使用指令,Apache管理员可以控制整个Web服务器的行为。由于Apache中提供了种类繁多的指令,这些指令使得的Apache是一个高度可配置的Web服务器。

Apache的指令可以分为两种:简单指令以及配置段指令。配置段指令都是被包含在”<…>”中的指令,比如<Directory>…</Directory>。配置段指令总是会包含其余的指令。

尽管从上面的语法我们可以看到Apache的指令的语法非常的复杂,但实际上却非常的简单。在Apache进行指令处理的时候,Apache将逐行的读取这些配置指令,如果某行不是空行(即不匹配正则表达式”^[\t]*$”),同时也不是一个注释行(不匹配正则表达式”^[\t]*#.*$”),那么Apache将该行的第一个单词视为指令字,后面的其余的单词全部算作参数。如果某个行以”\”结尾,则下一行视上一行的继续。

因此,Apache配置指令的规则可以概括如下:

对于配置文件中的指令,其规则如下:

使用UNIX路径法则:在所有的路径中使用“/”代替DOS下的“\”作为路径的分隔符。

所有的注释行以“#”开始,同时注释行必须在一行结束,如果一行注释容不下,下一行必须继续以“#”开始。

配置文件对大小写不敏感。但建议对非关键字均小写,而关键字则使用匈牙利方法,比如ServerRootTypesConfig等等。

每行只能配置一个参数,配置的基本格式为:

参数 参数值

如果指令过长,不能够在一行中完整地放置,此时需要分割成为多行,各个行之间用 \ 进行组合。如果使用 \ 字符,那么在反斜杠和行的末尾不能存在任何内容和字符,包括空格或者水平制表符。

系统将忽略配置文件中多余的空白字符。

<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False"><span lang="EN-US">4.3.2</span></chsdate>指令参数

<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False"><span lang="EN-US">4.3.2</span></chsdate>.1参数类型

从原则上讲指令的参数可以是任何的字符串,只要指令处理函数能够理解即可。不过对于一些常用的指令参数,Apache中有一些默认的规定。一般,指令名称后面可以跟一个或多个用空格分开的参数。如果参数中有空格,则必须用双引号括起来, 用方括号括起来的是可选的参数。如果一个参数可以取多个值,则各个可能的值用"|"分开。 应该原样输入的文字使用缺省的字体,而可变的必须按实际情况加以替换的会加强显示。 使用可变参数个数的指令以"..."结尾,以示最后一个参数可以重复。

指令的参数类型非常多,以下列出很常用的部分:

(1) URL

一个完整的包括类型、主机名和可选的路径名的统一资源引用名,如 http://www.example.com/path/to/file.html

(2) URL-path

url中类型和主机名之后的部分,如/path/to/file.html. url-path是表示资源在网络空间而不是在文件系统中的位置。

(3) file-path

即文件在本地文件系统中相对于根目录的路径,如 /usr/local/apache/htdocs/path/to/file.html. 除非指定了其他的值,不以斜杠开头的file-path将被视为对ServerRoot的相对路径。

(4) directory-path

即目录在本地文件系统中相对于根目录的路径,如 /usr/local/apache/htdocs/path/to/.

(5) filename

即不带路径信息的文件名,如file.html.

(6) regex

正则表达式,是对文本匹配模式的描述。指令的定义中会说明应该使用什么regex.

(7) extension

一般是指filename中最后一个"."号后面的部分。 但是,Apache可以辨认多个文件后缀,如果filename含有多个"." 则第一个"."后面由每个"."分隔开的部分都是此文件的后缀。 比如filenamefile.html.en有两个后缀:.html.en. Apache指令中指定extension时,可以有也可以没有前导的".",而且不区分大小写。

(8) MIME-type

一种用一个主格式类型和一个副格式类型并用斜杠分隔的描述文件格式的方法,如 text/htmlimg/jpeg等等。

(9) env-variable

这是Apache配置进程中定义的环境变量的名称。 注意,它不一定与操作系统中的环境变量相同。比如:

SetEnvIf Referer "^http://www.example.com/" local_referal

SetEnvIf Referer "^$" local_referal

<Directory /web/images>

Order Deny,Allow

Deny from all

Allow from env=local_referal

</Directory>

上面的代码就使用了环境变量local_referal,使用的时候必须通过env=xxxx进行指定。

<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False"><span lang="EN-US">4.3.2</span></chsdate>.2参数默认值

如果该指令有默认值(即,如果你没有在配置中明确指定, 那么Apache网站服务器会设置一个特定的值,并认为它是你设置的),会在此处说明。 如果没有,则会指明是"None"。注意,此处的默认值并不一定与服务器发行版中默认的httpd.conf中该指令的取值相同。

<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False"><span lang="EN-US">4.3.2</span></chsdate>.3配置段指令

<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False"><span lang="EN-US">4.3.3</span></chsdate>指令上下文

<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False"><span lang="EN-US">4.3.3</span></chsdate>.1上下文介绍

配置文件中的各个指令的作用范围是不一样的,可以分为全局指令局部指令以及条件指令。默认情况下,配置文件中的指令是作用于整个服务器的,比如上面的示例中的ServerRootTimeOut指令,它们的作用范围则是针对整个服务器而言,但并不是所有的指令都这样,有些指令只是针对某个特定的目录,文件或者URL地址,通常情况下,那么我们将这类指令称之为局部指令,这类指令总是嵌在相关的配置指令段中,比如<Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location>, 以及 <LocationMatch>,比如上面的示例片断中<Directory “C:/Program Files/Apache Group/Apache2/manual”>…</Directory>中的指令仅仅对目录C:/Program Files/Apache Group/Apache2/manual中的文件产生作用。

另外还有一些指令并不是针对某个目录的,而是在特定的条件下才会产生效果的,我们将它们称之为条件指令。

类似于<Director>的这类指令我们称之为容器指令或者称之为配置段指令。比如<IfDefine><IfModule>以及<IfVersion>等等。

局部指令和条件指令都是以<…>…</…>之间,我们将这两种指令称之为配置段指令。

一个指令它所能影响的范围以及它产生效果的条件,我们称之为指令的上下文,在用户使用任何一个核心指令之前,了解指令能够使用的上下文环境是一件非常重要的工作,换句话说,你必须能够知道指令的作用上下文或者指令的范围。

<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False"><span lang="EN-US">4.3.3</span></chsdate>.2主服务器上下文(Server Config)

如果指令的上下文是主服务器,那么它能够作用的范围将是配置文件中容器配置段之外的所有的范围,即可以出现在httpd.confsrm.conf以及access.conf,但却不能出现在<VirtualHost>或者<Directory>配置指令片断中。该指令也不能出现在.htaccess文件中。

<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False"><span lang="EN-US">4.3.3</span></chsdate>.3局部上下文(Local Config)

局部上下文通常是指某个虚拟主机,某个目录,某个URI以及某个Location,这种上下文之间的关系可以用下图进行描述。

<shape id="_x0000_i1028" style="WIDTH: 351pt; HEIGHT: 221.25pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image005.png"></imagedata></shape>

4.3 配置指令上下文

从上图可以看出,局部上下文可以分为两大类,一种是直接通过局部配置段指定,另外一种则是通过.htaccess文件进行指定。

最常用的配置段是针对文件系统和网络空间特定位置的配置段。首先必须理解文件系统和网络空间这两个概念的区别,文件系统是指操作系统所看见的磁盘视图,比如,在Unix文件系统中,Apache会被默认安装到/usr/local/apache2 ,在Windows文件系统中,Apache会被默认安装到"C:/Program Files/Apache Group/Apache2"(注意:Apache始终用正斜杠而不是反斜杠作为路径的分隔符,即使是在Windows)。相反,网络空间是网站被web服务器发送以及被客户在浏览器中所看到的视图。所以网络空间中的路径/dir/ Apache采用默认安装路径的情况下对应于Unix文件系统中的路径/usr/local/apache2/htdocs/dir/ 。由于网页可以从数据库或其他地方动态生成,因此,网络空间无须直接映射到文件系统。

文件系统容器

<Directory><Files>指令与其相应的正则表达式版本(<DirectoryMatch><FilesMatch>)一起作用于文件系统的特定部分, <Directory>配置段中的指令作用于指定的文件系统目录及其所有子目录,.htaccess文件可以达到同样的效果。下例中,/var/web/dir1 及其所有子目录被允许进行目录索引。

<Directory /var/web/dir1>

Options +Indexes

</Directory>

<Files>配置段中包含的指令总是应用于特定的文件而无论这个文件实际存在于哪个目录,指定的文件可以是普通的文件名称,另外可以使用<FilesMatch>指定正则表达式,是正则表达式的文件名称。下例中的配置指令如果出现在配置文件的主服务器段,则会拒绝对位于任何目录下的private.html的访问。

<Files private.html>

Order allow,deny

Deny from all

</Files>

<Files><Directory>段的组合可以作用于文件系统中的特定文件。下例中的配置会拒绝对 /var/web/dir1/private.html /var/web/dir1/subdir2/private.html/var/web/dir1/subdir3/private.html 等任何 /var/web/dir1/ 目录下private.html的访问。

<Directory /var/web/dir1>

<Files private.html>

Order allow,deny

Deny from all

</Files>

</Directory>

网络空间容器

<Location>指令与其相应的正则表达式版本(<LocationMatch>)一起作用于网络空间的特定部分。<Location>或者<LocationMatch>中包含的指令通常应用于特定的URL或者它的一部分,URL可以是普通的URL地址,也可以是正则表达式格式的URI

如果指令的作用范围是仅仅限于.htaccess文件中,那么该指令的上下文应该是属于针对目录级别的。当Apache处理HTTP请求从而遍历文件系统的时候进行读取并将指令作用于对应的目录。该上下文也被细分为五种子上下文,这些上下文在httpd.conf中的AllowOverride指令允许的时候发生作用。

下例中的配置会拒绝对任何以"/private"开头的URL路径的访问,比如:http://yoursite.example.com/privatehttp://yoursite.example.com/private123http://yoursite.example.com/private/dir/file.html 等所有以"/private"开头的URL路径。

<Location /private>

Order Allow,Deny

Deny from all

</Location>

<Location>指令与文件系统无关,下例演示了如何将特定的URL映射到Apache内部的处理器mod_status ,而并不要求文件系统中确实存在server-status文件。

<Location /server-status>

SetHandler server-status

</Location>

<Directory><Files>都提供了正则表达式版本的

<Directory>,<Files>, <Location>指令可以使用类似C标准库中的fnmatch的外壳通配符。符号"*"匹配任何字符串,"?"匹配任何单个的字符,"[seq]" 匹配seq序列中的任何字符,符号"/"不匹配为任何通配符所匹配,所以不能显式使用。

这些指令都有一个正则的配对指令,<DirectoryMatch>, <FilesMatch><LocationMatch>,可以使用与perl一致的正则表达式,以提供更复杂的匹配。但是还须注意下文配置的合并中有关使用正则表达式会如何作用于配置指令的内容。

下例使用非正则表达式的通配符来改变所有用户目录的配置:

<Directory /home/*/public_html>

Options Indexes

</Directory>

下例使用正则表达式一次性拒绝对多种图形文件的访问:

<FilesMatch \.(?i:gif|jpe?g|png)$>

Order allow,deny

Deny from all

</FilesMatch>

虚拟主机空间容器<VirtualHost>

包含的指令应用于特定的虚拟主机,这些虚拟主机之间通过唯一的IP地址和端口对进行区分。

分享到:
评论

相关推荐

    Apache服务器配置与管理

    主要的配置指令包括: - `ServerRoot`: 指定Apache服务器的根目录。 - `Listen`: 设置监听的端口号。 - `DocumentRoot`: 设定网站文档根目录,即Web内容存放的位置。 - `&lt;VirtualHost&gt;`: 配置虚拟主机,允许在...

    Linux中Apache的配置详解

    ### Linux中Apache的配置详解 #### 一、Apache概述与特点 Apache是一款广泛使用的Web服务器软件,它在Linux操作系统上非常流行。Apache以其强大的功能、稳定性以及灵活性而著称,适用于多种平台,并支持HTTP 1.1...

    Apache安全配置风险评估检查表.pdf

    《Apache安全配置风险评估检查表》是一份详尽的文档,旨在帮助系统管理员确保Apache服务器的安全性和稳定性,通过一系列的安全基线要求项来评估和强化Apache的安全配置。下面,我们将深入解析这份检查表中的关键知识...

    apache 配置配置配置

    这些功能主要通过配置文件中的指令实现,如“Require all granted”允许所有访问,“Require valid-user”则需要用户提供有效的用户名和密码才能访问。 #### 六、组织与管理站点内容 组织和管理站点内容是Apache...

    Apache 配置文件中文版

    #### 一、Apache配置文件概述 Apache配置文件是用于控制和设置Apache Web服务器行为的重要文件。对于初次接触Apache的新手来说,掌握配置文件的基本结构与常用设置至关重要。本篇内容将根据提供的部分Apache配置...

    Apache Web服务器配置与使用工作笔记

    #### 三、Apache配置文件详解 1. **主配置文件** - Apache的主要配置文件通常位于`/etc/httpd/conf/httpd.conf`(Linux)或`C:\Apache24\conf\httpd.conf`(Windows)。该文件包含了Apache的所有基本设置。 2. **...

    Apache:Apache的基本概念:Apache虚拟主机配置.pdf

    常见的配置指令包括Listen(监听端口)、ServerName(服务器名称)、DocumentRoot(网站根目录)和DirectoryIndex(默认首页文件)。此外,特定的目录访问权限和行为可以通过指令设置,而虚拟主机的配置可以通过和...

    Apache:Apache模块:Apache模块概述与工作原理.pdf

    模块的配置通常在Apache的主配置文件httpd.conf或特定的.conf文件中进行,配置指令可以控制模块的行为,如启用或禁用特定功能、设置参数等。例如,使用mod_ssl模块进行SSL配置时,LoadModule指令加载了模块,指令...

    apache指令大全

    本文将根据提供的部分文件内容,详细介绍Apache配置文件中的常见指令及其用法。 #### 二、基本指令详解 1. **AccessFileName** - **默认值**:`AccessFileName .htaccess` - **描述**:此指令用于指定目录下...

    运维技术课程 Linux学习教程 第13讲 Apache服务器配置 共44页.pptx

    1. **Apache配置文件** - **位置**:`/usr/local/apache2/conf/httpd.conf` - 这是Apache的主要配置文件。 - **主要配置项**: - `ServerRoot`:指定Apache的服务目录,例如 `/usr/local/apache2/`。 - `...

    windows下Apache配置SSL安全连接.docx

    - 可以通过 `Include` 指令引入其他的配置文件,例如自定义的 `.conf` 文件。 - 修改 `httpd-ssl.conf` 文件中的证书路径: ```plaintext SSLCertificateFile "D:/Apache2.2/conf/server.crt" ...

    Apache 2.0手册中文版翻译

    3. **配置文件**:Apache的配置主要通过httpd.conf文件进行,用户可以在此文件中设置服务器的行为,包括监听端口、虚拟主机、文档根目录、访问控制等。此外,还可以使用Include指令将配置分散到多个文件中。 4. **...

    Apache配置说明

    ### Apache配置说明 #### 一、概述 Apache是一款广泛使用的Web服务器软件,它以其稳定性、安全性、可扩展性而著称。本文档旨在为初学者提供一个简单的Apache配置指南,帮助用户快速上手Apache的安装与基本配置。...

    Apache服务器.docx

    在 Apache 启动时,会自动读取配置文件中的内容,并根据配置指令影响 Apache 服务器的运行。配置文件改变后,只有在下次启动或重新启动后才会生效。配置文件中的内容分为注释行和服务器配置命令行。行首有“#”的即...

    第X-16章 APACHE配置管理

    - **指令概述**: - `Order`: 设定拒绝和允许的先后顺序。 - `Deny`: 拒绝访问。 - `Allow`: 允许访问。 - `Deny from` 和 `Allow from`: 指定拒绝或允许的IP地址或域名范围。 - **示例配置**: - `Order Deny,...

    apache 中文参考手册

    Apache的配置文件通常包含多个部分,如VirtualHosts(虚拟主机)、Directory(目录)指令等。此文件可能详细阐述如何组织和理解这些配置部分,以实现对服务器行为的精确控制。 4. **glossary.html** - 术语表 这...

    Apache 资料

    ### Apache 配置资料详解 #### 一、Apache 概述与重要性 ...通过以上内容的学习,我们可以了解到Apache配置的基础知识,以及如何安装和配置Apache服务器。这些知识对于管理和维护Web服务器至关重要。

    apache架设网站

    #### 三、Apache配置文件结构 Apache的主要配置文件位于`/etc/httpd`目录下,具体包括: 1. **`/etc/httpd/conf/httpd.conf`**:这是Apache的主要配置文件,包含了Apache的所有核心设置。 2. **`/etc/httpd/conf/...

    apache在mac上以及linux上安装存在的一些问题以及解决方法

    - **端口绑定**:在Apache配置文件中,可通过指定`Listen`指令来绑定特定的端口,如80端口。对于Mac和Linux系统,默认情况下Apache通常监听80端口。若要更改端口,只需修改`httpd.conf`文件中的相应配置即可。例如,...

Global site tag (gtag.js) - Google Analytics