HTTP状态代码和DNS循环

时间:2009-07-08 13:33:46

标签: http browser dns

假设我有两台服务器并且我已经设置了DNS循环,如下所示:

www   IN  A   192.168.0.2
www   IN  A   192.168.0.3

从这个FAQ开始,它说“所有最新的浏览器(IE,Firefox,Safari和Chrome)都支持客户端重试(有时称为浏览器重试)。所以当它超时时因为服务器是下来,它将重试并点击循环中的下一个服务器“。

我的问题是:如果我想让192.168.0.2中的Web服务器继续运行,它应该返回什么(HTTP状态代码?连接拒绝?),以便重定向某些请求(例如主机头= cde.com)到192.168.0.3?

更新: 或者,如果主机头不匹配,我应该关闭tcp套接字吗?

2 个答案:

答案 0 :(得分:4)

我认为您所指的重试发生在TCP / IP级别 - 如果您返回HTTP响应,您几乎都说“嗨那里!我是网络服务器!我还活着!”

您可以尝试使用.2服务器上的iptables阻止所有端口80流量,可能还有一些额外的规则让您继续测试?

编辑:由于这不会飞,我建议在网络服务器前面放置一些HTTP级别的内容,例如haproxy,以便平衡和管理传入的请求。

答案 1 :(得分:0)

对于Mozilla,重试基本上意味着:如果连接建立失败(如主机不可达,连接建立超时或连接被拒绝)到第一个IP地址,将使用第二个IP地址。

如果有人真的想知道,我可能会找到代码的lxr链接。

(对于代理自动配置文件,也有更复杂的行为。)

因此,在这些情况下,您的Web服务器实际上并不会构成浏览器收到的响应。所以,不需要编码。