简单的查询关于Apache包含指令

我理解使用Include指令将外部文件Includehttpd.conf的原理,但是我只是想仔细检查一下,我是否已经理解它是如何工作的。

在我们的服务器上,我们已经使用了一些类似的configuration文件

 Include /etc/httpd/conf.d/*.conf 

现在我也有一堆IP地址,我知道我将需要指定多次(限制访问)。

目前我有:

 <Directory "/var/www/html/foo"> Order deny,allow Deny from all # IP block 1 Allow from 1.1.1.1 Allow from 1.2.3.4 # IP block 2 Allow from 2.3.4.5 Allow from 7.8.9.10 </Directory> 

等等

我可以把所有这些Allow语句放到一个外部文件,以便它读取如下所示:

 <Directory "/var/www/html/foo"> Order deny,allow Deny from all Include /path/to/iplist.conf </Directory> <Directory "/var/www/html/bar"> Order deny,allow Deny from all Include /path/to/iplist.conf # Some extra addresses for this directory Allow from 11.12.13.14 Allow from 20.21.22.23 </Directory> 

其中iplist.conf只包含

 # IP block 1 Allow from 1.1.1.1 Allow from 1.2.3.4 # IP block 2 Allow from 2.3.4.5 Allow from 7.8.9.10 

那有意义吗? Include指令没有任何理由应该掩盖这样的事情,是吗?

是的, Include指令的工作原理与您的想法完全相同,为了允许某些IP地址或networking,使用它并没有问题。

只要确保你的文件不在/etc/httpd/conf.d目录下,或者默认包含在httpd.conf文件中,这可能会导致奇怪的结果。 请注意,如果您使用通配符来包含文件,请记住它们将按字母顺序加载。