我在 AWS EC2 实例上有一个 Apache 2.4 VirtualHost,其配置如下:
<Directory /srv/www/example.org>
Require ip [REDACTED] # Office IP
Require local
</Directory>
当我从编辑后的外部办公室 IP 地址发出请求时,它工作正常,但当我从 EC2 实例发出请求时,我收到 401 未授权错误。我尝试用 替换,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
指令吗?
答案1
您在日志中看到的 IP 地址可能是 ec2 机器的内部 IP 地址。
或者,您可以更改您的要求行以使用主机名 localhost。这应该在 /etc/hostname 中正确定义