Назад | Перейти на главную страницу

Простой запрос о директиве 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>

и т.д

Могу я положить все эти 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 файл, и это может привести к странным результатам. Кстати, если вы используете подстановочные знаки для включения файлов, имейте в виду, что они будут загружаться в алфавитном порядке.