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