“/ etc / hosts”是否需要包含服务器托pipe的所有域?

我即将build立一个新的Ubuntu 10.04服务器,将作为一个Web服务器。 服务器将托pipe几个域,包括几个子域。 “/ etc / hosts”是否需要包含所有的域和子域,还是仅仅让它包含标准的localhost行和公共IP地址行就可以了?

127.0.0.1 localhost web00.example.com 173.203.99.130 web00.example.com web00 

我认为没有“/ etc / hosts”来列出Web服务器托pipe的域名的后果是DNS查找不能在内部完成,但必须交给外部DNS服务器。

我有很多服务器托pipe多个网站,并且从来没有设置/ etc / hosts来包含托pipe的域名。 如果你的网站确实引用了他们自己,虽然他们可能会通过否定DNS查询获得一些性能。 它对我来说从来不是一个问题,虽然它并不需要但可能不是一个坏主意。

如果您设置/ etc / hosts将域指向127.0.0.1,但是当然虚拟主机必须设置为在127.0上进行侦听,那么您还可以解决127.0.0.1stream量连接到公共接口的任何潜在的防火墙问题。 0.1以及那个工作。

它必须在/ etc / hosts中,除非您希望将它移交给外部DNS服务器。

“/ etc / hosts”是否需要包含服务器托pipe的所有域?

不,你只想在testing自己的Web服务器的时候这样做。

我知道其他人已经回答了,答案已经被接受了。 但是,由于OP听起来很新,所以应该提到一些缺陷。

/ etc / hosts只是parsing器信息的一个来源。 在networking上的DNS服务是另一个。 有更多的可能性,以及如何分辨率是确定您的nsswitch设置。 所以你必须平衡需要解决维护成本。 (例如,你的networking服务器是否需要parsing一个主机名来确定在启动时要绑定什么IP地址?如果是,并且DNSclosures了,你的web启动失败了,也许你调整了你的webconfiguration而不依赖于DNS。其他需要parsing名称的服务,等等,欢迎使用系统pipe理。)

在/ etc / hosts中添加大量条目非常繁琐但稳定(因为它不依赖DNS运行)。 所以有些pipe理员把系统所需的一切都放到了/ etc / hosts中。 一些pipe理员使用巨大的/ etc / hosts文件,并使用Puppet等进行pipe理,而不依赖于DNS。 这就是Sun的旧的“黄页”(yp)文件进来的地方,有一个中央文件通过YP共享,你的parsing器信息。