我知道这是一个老旧且“业余”的问题,但我认为自己有必要提出这个问题,因为我真的不知道发生了什么。
我的网站无法通过 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 管理所有条目。