2009-07-08 45 views
1

假设我有两台服务器和我已经设置了DNS轮循如下:HTTP状态代码和DNS轮循

www IN A 192.168.0.2 
www IN A 192.168.0.3 

从这个FAQ,它指出:“所有最新的浏览器(IE,火狐,Safari和Chrome)支持客户端重试(有时也称为浏览器重试),所以当服务器关闭时超时,它将重试并以循环方式打到下一台服务器。我的问题是:如果我想让192.168.0.2中的Web服务器保持运行,它应该返回什么(HTTP状态码?连接拒绝?),以便某些请求(例如host header = cde.com)是重定向到192.168.0.3?

UPDATE: 或者我应该关闭TCP套接字如果主机头不匹配?

回答

4

我认为你所说的重试是在TCP/IP级别发生的 - 如果你返回一个HTTP响应,你几乎可以说“你好!我是一个web服务器!我还活着!”

你可以尝试那么,什么是阻止使用.2服务器上iptables的所有80端口的流量,也许一些额外的规则,让你继续测试?

编辑:自认为不会飞,我建议把一些在Web服务器前面的HTTP水平,如haproxy,让你平衡和管理传入的请求。

+0

因为我想让主机头“abc.com”的请求仍然可以访问192.168.0.2,但所有其他请求都被重定向到192.168.0.3,我无法使用iptables阻止所有端口80的流量...... – 2009-07-08 13:48:25

0

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

我大概可以找到的LXR链接到代码,如果有人真的想知道。

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

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