У меня есть виртуальный хост Apache 2.4 на экземпляре AWS EC2 со следующей конфигурацией:
<Directory /srv/www/example.org>
Require ip [REDACTED] # Office IP
Require local
</Directory>
Когда я делаю запрос с отредактированного IP-адреса внешнего офиса, он работает нормально, но когда я делаю запрос из экземпляра EC2, я получаю ошибку 401 Unauthorized. Я пробовал заменить Require local
с участием Require ip 127.0.0.1
но безрезультатно.
Единственный способ, которым я могу делать запросы с локального компьютера, - это добавить его внешний IP-адрес, например Require ip 123.45.67.89
.
Я просмотрел журнал доступа, и все запросы, сделанные с локального компьютера, регистрируются как поступившие с внешнего IP-адреса, а не с 127.0.0.1.
В /etc/resolv.conf
файл выглядит так:
options timeout:2 attempts:5
; generated by /usr/sbin/dhclient-script
search eu-west-2.compute.internal
nameserver 172.31.0.2
Может ли это происходить из-за того, что IP / имя хоста разрешается извне другим сервисом AWS?
Могу ли я изменить любую конфигурацию сервера, чтобы Apache видел запросы от экземпляра EC2 как локальные, поэтому я могу использовать Require local
директива?
IP-адрес, который вы видите в журналах, скорее всего, является внутренним IP-адресом компьютера ec2.
В качестве альтернативы, не могли бы вы изменить строку require, чтобы использовать имя хоста localhost. Это должно быть правильно определено в / etc / hostname