2009-07-08 91 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服務器實際上並未構成瀏覽器收到的響應。所以,不需要編碼。