由于 DNS 查询时间过长,网页加载缓慢

由于 DNS 查询时间过长,网页加载缓慢

我的网站目前在执行某些 AJAX 调用时运行缓慢。如果我连续执行 ajax 操作,则一切正常。但如果我暂停几分钟然后触发 ajax 事件,则响应将需要很长时间。根据时间线,原因是 DNS 查找。

我目前正在使用 DNS 提供商,但这是否也可能是我的 Web 应用程序本身或 Apache 的问题?

我的应用程序在 LAMP 堆栈上运行。这个问题发生在不同的人身上。所以这可能不是我的本地机器或浏览器的问题。

请参阅所附的时间线示例图片。第一个发布请求花费了很长时间,但后续请求都少于 1 秒。

在此处输入图片描述

更多信息:

我最近使用条目中的 ServerAlias 更改了 apache 的 vhost 设置。之前 ServerAlias 有自己的条目作为 ServerName。

前:

NameVirtualHost *:80

<VirtualHost *:80>
  DocumentRoot /home/staging/www
  ServerName mydomain.com
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot /home/staging/www
  ServerName www.mydomain.com
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot /home/staging/www
  ServerName test.mydomain.com
</VirtualHost>

现在:

NameVirtualHost *:80
<VirtualHost *:80>
  DocumentRoot /home/staging/www
  ServerName mydomain.com
  ServerAlias www.mydomain.com test.mydomain.com
</VirtualHost>

答案1

您可以检查远程 DNS 记录的 TTL,看看“它们”是否设置得过于“激进”,不符合您的例外/需求。

答案2

正如 user48838 的回答所暗示的那样,DNS TTL 绝对值得关注。但是,如果设置得当,您可能需要查看您的“DNS 提供商”。我的意思是,我可以在下克拉科夫斯基的 DSL 线路末端设置几个 DNS 服务器,并挂出一个 DNS 提供商的招牌,但这并不意味着它有什么用处。

总体而言,我对 DNS 提供商持怀疑态度;内部提供 DNS 服务并不困难,如果您自己管理 DNS 服务,则可以更好地控制 DNS 服务。毫无疑问,如果您需要全球、低延迟、高可用性的服务,那么优质的任播服务可以满足您的需求,但实际上它们价格昂贵,而且我并不觉得您是在为大型网站提供服务。

因此,我会非常仔细地检查您的“DNS 提供商”,除非您真的能说服自己他们不是问题的根源,否则要么换一个更好的,要么干脆把它带到公司内部,这样您至少可以管理服务质量并确保它满足某些最低标准。

相关内容