我们正在一家非常好的托管服务提供商处设置网站,但我在考虑将域名也转移给他们是否是个好主意。
从优点方面来说,从管理的角度来看它应该更快+更少麻烦。
缺点是,这意味着把鸡蛋都放在一个篮子里。但是如果托管服务瘫痪,将用户重定向到任何地方都是没有意义的……
大家对最佳方法有什么看法?(a)两者使用同一提供商;(b)托管和域名注册使用不同的提供商
答案1
这取决于托管商的服务质量和声誉。通常他们拥有或将服务器置于庞大的基础设施中,配备空气过滤、故障转移系统等……
对于信誉良好的提供商来说,一切崩溃的可能性非常低,即您的托管服务器 + 他们的 DNS 服务器。
但是,您可能有一个非常好的托管公司,但它并没有非常关心(低估了)DNS服务,这要么是由于计算机效率低下,要么(更可能是)存在带宽/内部路由问题。
例如,虽然托管服务运行良好,但 DNS 响应可能很慢。通常 DNS 超时会很快发生(约 3 秒),请求可能会落到辅助服务器(等等)。用户看到这种情况总是很烦人。
Looking up domain.com...
在浏览器底部停留几秒钟,而网站本身则会快速提供网页(DNS 响应会缓存几分钟,但第一次/不经常使用的用户会感到失望)。
作为一种结论,我更担心 DNS 响应时间而不是停机时间(对于知名的托管公司而言),并且如果 DNS 响应很慢,我会毫不犹豫地将 DNS 放在另一个级别进行管理(例如注册商或其他公司)。
编辑
添加观察 DNS 响应时间的方法
从网上找到一个好的工具并不容易。这表明人们低估了 DNS 响应时间的重要性。这是一个可以改编的小型 perl 脚本;用很多域填充域数组。我们考虑 TTL(基本上是域名想缓存的时间最长为一天 - 这是一个相当高的值。
您必须确保您的工作站已resolv.conf
设置为托管公司 DNS 服务器(或者dig
可以修改,但最好从要托管的服务器进行测试,直接访问 DNS 服务器)。
我们想知道当其他 DNS 服务器/客户端首次查询您的域名时,这些 DNS 服务器的响应速度有多快。虽然托管 DNS 应该在其缓存中保存您的域名,但它可能会遇到带宽低、路由效率低、性能问题、共享问题等问题...
#!/usr/bin/perl
# Put a lot of domains... better if used infrequently
@domains = ( "google.com","cnn.com","stackoverflow.com","serverfault.com" );
# Change the path to the log file reflecting the response times per domain
$log = "/tmp/dns-log.txt";
# Sleep $sleep seconds per domain, for a day you need (24*3600) / $sleep domains
# if you consider the average (max) TTL to be 1 day. Or increase the $sleep.
$sleep = 60;
foreach $domain (@domains)
{
@r = `dig $domain`;
for (@r)
{
if (m/^;; Query time:\s*(\d+)/)
{
&log($domain, $1);
}
}
sleep 1;
}
sub log
{
my ($domain,$time) = @_;
open F, ">>$log";
print F sprintf("%6d %s\n", $time, $domain);
close F;
}
响应时间还取决于目标域的速度 - 我们希望全面了解您的托管 DNS 的行为方式。最好的方法是从另一台 DNS 服务器运行相同的测试(例如第二天,否则,第一个测试者可能会帮助几分钟后在目标域端出现的第二个测试者)。
目标
- 随着时间的推移保持一致性
- 经过几天在不同的服务器上进行多次测试后,您的 DNS 与其他 DNS 之间应该没有太大差异。
答案2
托管和域名/DNS服务应该分开。这意味着您可以轻松更改服务器提供商并将所有数据传输到新位置无需重定向客户至于可靠性,如果您的 DNS 提供商提供多个名称服务器并且拥有良好的记录,那么就没什么问题。
答案3
我建议按如下方式分离服务:
- 托管
- 域名
- DNS 服务
- 电子邮件