2015-05-18 150 views
0

爲了解決服務器負載的擴大問題,我提出了一個解決方案來爲我的站點訪問者提供純HTML網站。所以訪客被路由到純HTML網站,而註冊用戶被路由到動態網站。 要分離兩個不同的用戶組,我使用了Cookie。我使用的負載平衡器和Web服務器是nginx。nginx上的負載均衡策略

nginx的的c​​onf看起來是這樣的:

set $cookie_set 0; 
if ($http_cookie ~ 'mysite.com') { 
     set $cookie_set 1; 
} 
location/{ 
     if ($cookie_set ~ 0) { 
       proxy_pass http://static-site; 
     } 
     if ($cookie_set ~ 1) { 
       proxy_pass http://dynamic-site; 
     } 
} 

所提戰略的作品,但它不是防彈。在某些情況下,這不起作用,例如瀏覽器不支持cookies並錯誤地創建cookie。

必須有更復雜的策略來做到這一點。任何經驗,意見和想法都是受歡迎的。

回答

0

這是一個真正的負載平衡器,如HAProxy需要。 使用HAProxy,您可以根據當前後端羣容量來路由流量。

下面的配置sniplet在流量轉發到靜態後端時,動態的開始排隊。

frontend 

use_backend bk_static if { queue(bk_dynamic) ge 1 } 
default_backend bk_dynamic 

backend bk_static 

backend bk_dynamic 

相同類型的配置可能適用於bk_dynamic後端上的多個運行會話。

Baptiste

+0

很酷。唯一不需要的問題是,如果動態網站開始排隊,註冊用戶將看到訪客內容。我正在尋找一種堅持不懈的解決方案來分隔不依賴於服務器負載的訪問者和註冊用戶。 – Hakki