httpd.conf
我理解将外部文件包含到使用指令中的原理Include
,但我只是想仔细检查我是否理解了它是如何工作的。
在我们的服务器上,我们已经使用类似如下命令包含了一堆配置文件
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>
ETC
我可以将所有这些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
对这样的事情嗤之以鼻,不是吗?
答案1
是的,该Include
指令的工作原理正如您所想的那样,使用它来允许某些 IP 地址或网络没有任何问题。
只要确保你的文件是不是在里面/etc/httpd/conf.d目录,否则它将默认包含在主目录中httpd配置文件文件,这可能会导致奇怪的结果。另外,如果您使用通配符来包含文件,请记住它们将按字母顺序加载。