Мы хотим настроить веб-сайт для демонстрационной цели только, что мы можем:
Мы, кажется, имеем, достигают 2 и 3, но 1 не работает, а также мы думали, что это будет, наши пользователи продолжали получать переподсказку для HTTP Основное Подлинное имя пользователя и пароль даже при том, что они уже аутентифицируются и идут в различные страницы веб-сайта. Мы заметили от журналов, они получают следующее сообщение об ошибке при доступе к определенным активам:
[Tue Jun 09 10:50:03.442834 2015] [access_compat:error] [pid 5740:tid 140705259312896] [client 78.52.242.163:62774] AH01797: client denied by server configuration: /var/www/docroots/stage/lib/yui/build/moodle-core-checknet/assets/checknet.txt, referer: http://stage.example.org/mod/scorm/player.php
Вот наш Apache vhost:
<VirtualHost *:80>
ServerName stage.example.org
DocumentRoot /var/www/docroots/stage
<Directory /var/www/docroots/stage>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
# Only visible on Office network or anyone with a valid password.
AuthType Basic
AuthName "Authorisation Required"
AuthUserFile "/var/www/htpasswd"
Require valid-user
Order allow,deny
Allow from 202.161.24.210 127 ::1
Satisfy any
</Directory>
</VirtualHost>
Мы выполняем Apache 2.4.6 на CentOS 7. Наша конфигурация корректна? Кажется, что наша конфигурация действительно работает на высокоуровневые файлы в /var/www/docroots/stage
а также другие изображения, CSS и файлы JavaScript под подкаталогами, которые непосредственно находятся под этим, но могло случиться так, что это забывает Автора HTTP после определенного числа подкаталогов? SELinux находится в разрешающем режиме.
Без полного сообщения об ошибке (я бы ожидал, что модуль и IP-адрес) это немного предположение, но вы смешиваете директивы из двух разных модулей в Apache 2.4, Требовать директиву
из mod-authz-core и директивы "legacy" Allow
и Order
из mod-access-compat, что может не очень хорошо.
Вы можете попробовать заменить строки
Order allow,deny
Allow from 202.161.24.210 127 ::1
на следующие
Require ip 202.161.24.210 127 ::1/128
На уже существующие Удовлетворите все
, которые должны соответствовать вашим требованиям.
Ваше третье требование:
Некоторым частям демонстрационного сайта необходимо будет отправлять запросы REST к самому себе ...
Возможно, доступ к серверу не с адреса обратной связи, как вы ожидали, но он может быть настроен с полным доменным именем, аналогичным http://api.example.com/rest?
и исходящим от публичного IP-адреса сервера.
Вы можете добавить общедоступные IP-адреса сервера, но это намного легче разрешить в Apache 2.4; локальный провайдер разрешает доступ к серверу, если выполняется одно из следующих условий:
Поэтому вместо перечисления обратных IP-адресов используйте:
Require valid-user
# Office Gateway:
Require ip 202.161.24.210
# API access from this host:
Require local
# Only one or more of the above needs to match:
Satisfy any