我在个人服务器上有一个非常简单的 apache2 设置 - 即除了允许/拒绝规则外,配置文件中的自定义很少,我刚刚在相关机器上升级了 Ubuntu 版本从 8.04 - 8.10。但是,尽管在升级期间保留了 apache 配置文件,但如果我尝试访问以前可访问的网页,apache 现在会给我“403 fobidden”,除非我使用本地主机。如果我改变
从 hostname.domain.local 允许
至
允许来自 192.168.1.xxx
在我请求的目录的 apache 配置文件中,我可以毫无障碍地访问该页面。
不幸的是,我的 Apache 技能组合不是很先进。任何人都可以就为什么会发生这种情况提供任何建议吗?
以下是我们尝试过的一些事情:
- nslookup by hostname 来自受影响计算机的 IP 地址(我得到了预期的结果)
- php -r 'echo gethostbyaddr("192.168.1.196")."\n";' 此命令以主机名回复
好的,我发现了问题:它与 avahi-daemon 有关:请参阅错误 80900 如果我禁用该守护程序,则 apache 工作正常。我也可能有一个配置文件可以编辑,但现在我可以花时间来禁用守护进程。如果我找到更好的答案,我会更新这个问题!
Apache 的 mod_access 提供了“允许来自...”的功能。
对于“允许来自”要求,mod_access 将执行以下操作:
如果反向和正向查找成功并且一致(匹配主机名/IP),并且“Allow from”部分中的主机名相同(或者是后缀),则应该允许您访问。
由于您的“允许来自”语句适用于 IP 地址,但不适用于主机名,因此它可能与 DNS 相关。
从您的网络服务器,您应该能够:
如果 DNS 结果不符合您的预期,那么首先确定哪些文件/名称服务器(/etc/hosts 和 /etc/resolv.conf、/etc/nsswitch.conf?)将是开始调试的地方。