首页 > 网站 > Apache > 正文

Apache服务器配置全攻略(四)

2024-08-27 18:28:43
字体:
来源:转载
供稿:网友
作者:王波

options followsymlinks

allowoverride none

  apache服务器可以针对目录进行文档的访问控制,然而访问控制可以通过两

种方式来实现,一个是在设置文件 httpd.conf(或access.conf)中针对每个目

录进行设置,另一个方法是在每个目录下设置访问控制文件,通常访问控制文件

名字为.htaccess。虽然使用这两个方式都能用于控制浏览器的访问,然而使用配置文件的方法要求每次改动后重新启动httpd守护进程,比较不灵活,因此主要用于配置服务器系统的整体安全控制策略,而使用每个目录下的.htaccess文件设置具体目录的访问控制更为灵活方便。

  directory语句就是用来定义目录的访问限制的,这里可以看出它的标准语法,为一个目录定义访问限制。上例的这个设置是针对系统的根目录进行的,设置了允许符号连接的选项followsymlinks ,以及使用allowoverride none表示不允许这个目录下的访问控制文件来改变这里进行的配置,这也意味着不用查看这个目录下的相应访问控制文件。

  由于apache对一个目录的访问控制设置是能够被下一级目录继承的,因此对

根目录的设置将影响到它的下级目录。注意由于allowoverride none的设置,使

得apache服务器不需要查看根目录下的访问控制文件,也不需要查看以下各级目

录下的访问控制文件,直至httpd.conf(或access.conf )中为某个目录指定了

允许alloworride,即允许查看访问控制文件。由于apache对目录访问控制是采用的继承方式,如果从根目录就允许查看访问控制文件,那么apache就必须一级一级的查看访问控制文件,对系统性能会造成影响。而缺省关闭了根目录的这个特性,就使得apache从httpd.conf中具体指定的目录向下搜寻,减少了搜寻的级数,增加了系统性能。因此对于系统根目录设置allowoverride none不但对于系统安全有帮助,也有益于系统性能。


options indexes followsymlinks

allowoverride none

order allow,deny

allow from all

  这里定义的是系统对外发布文档的目录的访问设置,设置不同的 allowoverride选项,以定义配置文件中的目录设置和用户目录下的安全控制文件的关系,而options选项用于定义该目录的特性。

  配置文件和每个目录下的访问控制文件都可以设置访问限制,设置文件是由

管理员设置的,而每个目录下的访问控制文件是由目录的属主设置的,因此管理

员可以规定目录的属主是否能覆盖系统在设置文件中的设置,这就需要使用 啊allowoverride参数进行设置,通常可以设置的值为:

allowoverride的设置 对每个目录访问控制文件作用的影响

all 缺省值,使访问控制文件可以覆盖系统配置

none 服务器忽略访问控制文件的设置

options 允许访问控制文件中可以使用options参数定义目录的选项

fileinfo 允许访问控制文件中可以使用addtype等参数设置

authconfig 允许访问控制文件使用authname,authtype等针对每个用户的认证机制,这使目录属主能用口令和用户名来保护目录 limit 允许对访问目录的客户机的ip地址和名字进行限制

  每个目录具备一定属性,可以使用options来控制这个目录下的一些访问特性设置,以下为常用的特性选项:


options设置 服务器特性设置

all 所有的目录特性都有效,这是缺省状态

none 所有的目录特性都无效

followsymlinks 允许使用符号连接,这将使浏览器有可能访问文档根目录 (documentroot)之外的文档 symlinksifownermatch 只有符号连接的目的与符号连接本身为同一用户所拥有时,才允许访问,这个设置将增加一些安全性

execcgi 允许这个目录下可以执行cgi程序 indexes 允许浏览器可以生成这个目录下所有文件的索引,使得在这个目录下没有index.html(或其他索引文件)时,能向浏览器发送这个目录下的文件列表

 此外,上例中还使用了order、allow、deny等参数,这是limit语句中用来根据浏览器的域名和 ip地址来控制访问的一种方式。其中order定义处理allow和deny的顺序,而allow、deny则针对名字或ip进行访问控制设置,上例使用allowfrom all,表示允许所有的客户机访问这个目录,而不进行任何限制。


  userdir public_html

  当在一台linux上运行apache服务器时,这台计算机上的所有用户都可以有自己的网页路径,形如 http://example.org.cn/~user,使用波浪符号加上用户名就可以映射到用户自己的网页目录上。映射目录为用户个人主目录下的一个子目录,其名字就用usedir这个参数进行定义,缺省为public_html。如果不想为正式的用户提供网页服务,使用disabled作userdir的参数即可。


#

# allowoverride fileinfo authconfig limit

# options multiviews indexes symlinksifownermatch includesnoexec

#

# order allow,deny

# allow from all

#

#

# order deny,allow

# deny from all

#

#


  这里可以看到directory的另一个用法,即可以通过简单的模式匹配方法,针对分布在不同目录下的子目录定义访问控制权限。这样设置就需要apache服务器对每个路径进行额外的处理,因此就会降低服务器的性能,所以缺省情况并没有打开这种访问限制。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表