为什么我的网站无法通过 www 前缀访问

为什么我的网站无法通过 www 前缀访问

我知道这是一个老旧且“业余”的问题,但我认为自己有必要提出这个问题,因为我真的不知道发生了什么。

我的网站无法通过 www 前缀访问...实际上,它有时能用,有时不能用。如果我访问没有 www 的网站,那么它就会突然开始使用 www。

在“做完作业”后,我按照以下步骤解决问题:

- 在我的域名服务提供商上,我添加了指向我网站的 A 记录和 C NAME 记录,它实际上看起来像这样,我假设 GoDaddy 将 @ 解析为我的网址,因为我有时确实会访问该网站:

在此处输入图片描述

-在我的虚拟主机配置文件(在我的情况下是 httpd-vhost.conf)上,我有以下结构:

NameVirtualHost *:80 
<VirtualHost *:80>
  ServerName www.example.com
  ServerAlias example.com

  DocumentRoot my_htdocs_path

  <Directory my_htdocs_path>
    Option Indexes FollowSymLinks MultiViews    
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>
</VirtualHost>

我有 4 个这样的积木,它们都运行正常,但最重要的是那个!(墨菲定律)。

发生了什么事?有人能给我一点提示吗?

其他有用信息:

  • 运行 Amazon EC2
  • 我使用 Route53 作为子域名
  • 一切正常

答案1

我可以想到两种解释,都与 DNS 查找有关:

  • 可能是您使用的某个递归解析器缓存了您创建 CNAME 之前的否定条目。它是否有效取决于您当时恰好使用的解析器。
  • 可能其中一个相关服务器未正确处理与 CNAME 关联的附加记录。这可能意味着返回的 CNAME 不包含作为附加答案的 A 记录。但是解析不带 www 的名称将导致所需的 A 记录被缓存,并且只要它保持缓存状态,就会将其作为附加记录包含在内。

nslookup您可以尝试使用或等工具来解析带有和不带有 www 的域名dig。尝试使用不同的递归解析器,尝试您的 ISP 提供的解析器以及一些公共解析器(8.8.8.8 和 8.8.4.4 是不错的选择)。

答案2

好的,感谢所有回答的人,你们帮助我走上了正轨。该问题与 GoDaddy 和 Route53 上的重复条目有关。

我最终做了以下事情:

  • 在 GoDaddy 的主屏幕上,您会看到“启动”域(“启动”= 打开设置的最糟糕的名字,在我看来)。然后将 NS 服务器设置为 Route53 提供给我的服务器,它们正好是 4 个,在下图中用黄色标记。 在此处输入图片描述

  • 我进入了这条记录并添加了全部从 GoDaddy 到 Route53 的记录,你应该得到如下结果:

在此处输入图片描述

  • 最后,我在 Godaddy 上删除了除 CNAME 条目之外的所有条目,我最初有 A、TXT 和 NS 条目。这样现在只有 Route53 管理所有条目。

相关内容