我理解使用Include指令将外部文件Include到httpd.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文件中,这可能会导致奇怪的结果。 请注意,如果您使用通配符来包含文件,请记住它们将按字母顺序加载。