Я понимаю принцип включения внешних файлов в 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>
и т.д
Могу я положить все эти 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-адреса или сети.
Просто убедитесь, что ваш файл НЕ в /etc/httpd/conf.d каталог, или он будет включен по умолчанию в основной httpd.conf файл, и это может привести к странным результатам. Кстати, если вы используете подстановочные знаки для включения файлов, имейте в виду, что они будут загружаться в алфавитном порядке.