关于 apache Include 指令的简单查询

关于 apache Include 指令的简单查询

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配置文件文件,这可能会导致奇怪的结果。另外,如果您使用通配符来包含文件,请记住它们将按字母顺序加载。

相关内容