当允许来自 myserver.com 的 myserver.com 位于 /etc/hosts 中时,Apache 是否会执行 DNS 查找?

当允许来自 myserver.com 的 myserver.com 位于 /etc/hosts 中时,Apache 是否会执行 DNS 查找?

apache 文档指出,当 Allow from(或 Deny from)子句包含域名时(例如 Allow from myserver.com),将执行 DNS 查找。如果域名和 IP 列在 /etc/hosts 中,该怎么办?

谢谢

答案1

Apache 使用 nsswitch。如果 /etc/hosts 中有 IP 地址,则使用 /etc/hosts 信息。

在 /etc/hosts 中注释“10.0.2.15 localhost”:

curl 10.0.2.15
16:48:41.505697 IP 10.0.2.15.43281 > 10.0.2.2.53: 11646+ PTR? 15.2.0.10.in-addr.arpa. (40)
16:48:41.506336 IP 10.0.2.2.53 > 10.0.2.15.43281: 11646 NXDomain* 0/1/0 (99)

在 /etc/hosts 中取消注释“10.0.2.15 localhost”:

curl 10.0.2.15

但性能仍然下降:

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
  0.88    0.028002          37       752           getsockname

相关内容