我之前曾在另一个 AWS 账户的不同实例中托管过我的域名,但出于某种原因,我不得不删除该 AWS 账户并创建一个新账户。我现在正尝试在新实例中托管我的域名。因此,我转到我的注册商账户,从域名中删除了所有名称服务器,并添加了新的名称服务器。然后,我将我的域名添加到 AWS 中的托管区域。
等待了 2 到 3 个小时后,我的域名仍然可以工作,但如果我访问公共 IP,它就可以工作。
我已经编辑了 /etc/hosts 文件并在其中添加了 domainname.com,同时我还编辑了 /sites-available/default 并添加了
server {
# passenger_ruby /usr/bin/passenger_free_ruby;
rails_env development; # add this if you get error like “Incomplete response received from application” from nginx / passenger
listen 80 default_server;
server_name fuitter.com, *.fuitter.com;
root /usr/share/nginx/html/maggie/public/;
# You must explicitly set 'passenger_enabled on', otherwise
# Passenger won't serve this app.
passenger_enabled on;
}
我已经重启了 nginx 服务器,但它仍然无法正常工作。安全组,在入站规则中,我已将 HTTP 设置为任意位置,将 SSh 设置为自定义 IP,在出站规则中,我已将所有流量设置为任意位置。这有什么问题吗?
答案1
DNS 没有固定的传播时间。您经常会听到 24-48 小时的说法,这是常见的设置,但在进行更改之前,您需要了解 DNS 记录的具体信息。
DNS 中的每条记录都有一个 TTL 值,它让各方知道他们可以认为解析有效多长时间。
fruitter.com. 21600 IN A 62.149.128.160
对于 fruitter.com,A 记录的 TTL 为 21600 秒。即 15 天。因此,任何执行 DNS 查询的程序(包括 fruitter.com 的其他 DNS 服务器和主机)在 15 天过去之前都不需要也不应该再次查询 fruitter.com 的名称服务器。
您可以通过刷新 DNS 强制刷新主机。您可以清除 DNS 服务器的缓存。这些将为您提供最新的记录副本。但这只会影响您控制的内容。互联网上的其他人将使用 15 天的 TTL。
因此,如果您计划更改任何依赖 DNS 的内容,您的第一步应该是了解当前的 TTL,并减少它们。将 TTL 更改为 60 意味着在 15 天内,您可以对 DNS 进行更改,这些更改将在一分钟内传播。
当然,在此期间,您的 DNS 服务器将看到流量增加,因为给出的响应仅在一分钟内有效,之后必须对您的服务器进行新的查询。所以您也需要为此做好计划。
找到一个折中方案是常见的做法。根据流量和查询,将 TTL 缩减为最大可容忍窗口。进行更改,然后在 TTL 过期后,将 TTL 更改为更大的值。
一些 DNS 提供商(例如您正在使用的提供商)会默认将 TTL 设置得非常高,以减轻其服务器的压力。
在某些情况下,DNS 用于实现跨站点的高可用性,因此 TTL 设置为最短 15 秒,以便在发生中断时快速重定向到新 IP 地址。在这些情况下,预计会出现大量 DNS 查询。