显然,我的 Apache httpd 实例正在对每个传入客户端连接的 IP 地址进行反向 DNS(RDNS,给我这个 IP 地址的主机名)查找。这很糟糕。尤其是有时解析会因缺少 PTR 记录而失败 -28秒后。
诊断:我添加了%D
我的“组合”日志样式,并通过以下方式查看了响应时间:显然,对于所有使用其主机名记录的用户,响应时间都小于 1 秒,而对于记录其 IP 的用户,响应时间则为 20+ 秒。
这是我尝试过的:
- 关闭
server-status
扩展。 - 检查
HostnameLookups Off
配置中是否包含该项。 - 检查/规则
mod_access
中没有给出任何主机名。Allow
Deny
- 检查反向代理服务器是否遵循相同的规则。
我错过了什么?
答案1
答案2
您是否已确认HostnameLookups
未在任何其他指令中设置?您是否已激活模块 mod_authz_host?
答案3
我偶然发现了同样的问题,并发现了另一个反向查找来源:应用程序本身! PHP 具有以下gethostbyaddr()
功能:
答案4
我在 NGINX 反向代理服务器后面有一个 Apache 服务器。Apache 服务器会对每个请求进行反向 DNS 查找。我尝试了目前为止建议的所有方法,甚至注释掉了日志行,但 Apache(或其他程序)正在执行反向 DNS 查找(NGINX 服务器的查找)。然后我在 Apache 服务器的文件中添加了 NGINX 服务器,/etc/hosts
不再进行反向查找!当所有这一切发生时,Apache 会愉快地转发(客户端的)远程 IP,而无需进行任何查找。对这个解决方法很满意,但很想知道如何完全避免一遍又一遍地查找同一个 NGINX 反向代理服务器!