[TED] 浅谈Apache2 配置文件中几个配置项

本文详细解析了Apache2 http.conf中几个重要的配置项,如AuthTypeNone、AddHandler、AllowOverride、Options等,并提供了实际应用场景的示例。通过理解这些配置项的作用,用户可以更灵活地控制网站的访问权限和执行脚本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近稍微了解了一下apache2关于http.conf中的几个配置项,网上说的比较少有的还是错的,apache的官网文档很全也很详细,所以这里稍微说明一下以做备忘

这里有个例子,我们把访问的网页和CGI文件都丢到/my/web下面

<Directory      /var/www/my/web>   
        AuthType None
        Options Indexes +ExecCGI  -MultiViews +SymLinksIfOwnerMatch
        AddHandler cgi-script .cgi .pl
        AllowOverride None
        Order allow,deny  
        allow from all 
</Directory>

其中:

AuthType None
安全认证类型,这个网上很多不解释


AddHandler cgi-script .cgi .pl
可执行脚本的类型,后台有哪些类型的执行脚本在这里加上,否则会报找不到文件的错误。例子中后台只有二进制的CGI文件和perl的脚本。


allow from *  
通过IP地址或者主机名限制访问, 例子中
 allow from all
我们不拒绝任何用户访问,如果希望限制部分访问可以

Allow from 192.168.1.2/24 deny from 192.168.1.110/24 
这样192.168.1.109可以访问而192.168.1.111就无法访问了。


Order allow,deny
 顾名思义,访问控制顺序,就是指定allow from * 中允许和拒绝的操作的顺序, 还是以上面为例

Allow from 192.168.1.2/24 deny from 192.168.1.110/24
如果顺序是allow, deny  则先允许192.168.1.2以后的IP地址通过, 之后再拒绝192.168.1.110以后的地址通过

结果就是只有192.168.1.2 - 192.168.1.109之间的地址可以允许访问。

相反如果是顺序是deny,allow 那么先拒绝192.168.1.110之后的地址,在允许192.168.1.2之后的地址通过

那么结果192.168.1.2之后的所有地址都可以访问,其中也包括192.168.1.110之后的地址


AllowOverride None
在http.conf中的访问控制提供的功能很简单(只能像上面那样限制部分主机访问),如果复杂一些的功能,诸如user,group权限之类的权限就需要到.htaccess进行配置。

当apache server读到这个目录配置的时候,如果配置项AllowOverride None则无视.htaccess,如果AllowOverride All (默认),则apache会去读取.htaccess中关于此目录的权限配置。


Options Indexes +ExecCGI  -MultiViews +SymLinksIfOwnerMatch

最后我们来看看option选项,“+” 指的是增加此属性项, 相反 “-”  就是去除。

Indexes 
如果没有默认能够打开的文件,则显示当前目录结构。

通常当用户访问主页的时候,apache都会在目录下寻找默认的index.html的文件打开(或者xml/html等等),此时如果找不到默认文件web就会显示当前的目录结构。

ExecCGI  
有需要执行的cgi文件或者脚本, 此对应上面的AddHandler选项

MultiViews 

这个误解比较多,很多筒子望文生义。这里纠正一下,它的意思其实是 “多重匹配” 。

比方说用户访问你的web下的http://example.com/start ,结果apache server找了一圈也没发现start,一般情况server就会直接丢给用户一个大大的 ”Not found“, 但是如果你设置了 +MultiViews ,apache就会继续匹配所有start . * 如果刚好有一个start.gif或者start.html那么这个文件就会被显示/执行。这个功能看似智能,实则安全隐患多多,因此一般的配置中这个选项都是被关闭的。所以一般如果你不是很明白最好是disable此项。


FollowSymLinks
由于文件权限问题,通常我们都会把一些文件从其他地方做一个链接放到web目录下,那么就需要enable这个选项


SymLinksIfOwnerMatch
这个选项是对FollowSymLinks进行一些限制,就是要求当前web下面的链接文件和源文件属于同一所有者。

比如 /var/www/my/web/connfig.cgi 是一个link指向 /home/myhome/config.cgi

那么如果/home/myhome/config.cgi的所属是admin 那么/var/www/my/web/connfig.cgi也必须是admin。


Alias / /var/www/my/web
设置快速链接,原先用户访问http://example.com/my/web/index.html
现在只需要http://example.com/index.html就可以了


ScriptAlias
和Alias类似,不同的是ScriptAlias还可以限定了目录下的可执行脚本

ScriptAlias / /var/www/my/web/
只有web目录下的脚本可以被执行。
ScriptAlias / /var/www/my/web/index.cgi
只有index.cgi可以执行,目录下其他的可执行文件就都不能执行了。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值