1. 程式人生 > >多個Nginx如何實現叢集(沒具體方案,只是初步探究)

多個Nginx如何實現叢集(沒具體方案,只是初步探究)

多個Nginx如何實現叢集(沒具體方案,只是初步探究)

場景:

Nginx+Web伺服器可以實現負載均衡,但是一臺Nginx也是有限的,如果並非量高的話,在他的上層如何實現負載均衡。 如果是DNS或者CDN的話,建多個機房,勢必有多個機房資料同步的問題。 有什麼這方面的好的資料嗎?

解答:

這方面的資料,基本都是一塊一塊不完整的。我大概跟你說一個基本架構:

  1. DNS伺服器,如果資金充足的話,建議使用BGP機房,2-3臺DNS伺服器均衡,通常使用bind軟體。如果資金緊的話,可以購買專業的DNS服務,比如國內的dnspod。
  2. CDN伺服器,一開始如果想省事,可以買專業公司的服務,如chinacache,但隨著發展成本會越來越高。自建的話,可能分別搭建,放電信、聯通、移動等不同機房的伺服器,通過DNS做動態解析。超大網站的話,可以用Squid,普通中至大型用Nginx,內部玩玩用Varnish。
  3. 前端均衡,資金充足的話,可以使用硬體裝置,幾十萬一臺。自已有技術隊伍的話,就用Nginx/Haproxy+Keepalived等自已組建前端。均衡的方式都比較靈活,隨機、權重、IP、URL都有。
  4. 同步的問題要看同步什麼東西,普通的可以實時檔案同步。但資料庫的話,要看具體型別選擇同步方式了。
  5. 後端的應用伺服器和資料庫叢集,要看流量規劃了。

多臺Nginx實現均衡,有幾種方法:

1、每臺Nginx都有公網地址,在域名處設定同個域名多個指向,最簡單實現輪洵。但故障切負會慢一點。

2、一臺公網Nginx通過upstream功能,輪洵、IP、url多方式分發到內網多臺nginx。但公網的nginx如果Down機的話,內網全斷。

3、一對公網Nginx加三個公網IP,通過Keepalive實現高可用,再upstream到內網。

4、一臺硬體均衡伺服器在前端,再通過硬體均衡到內容的其它伺服器。

你所說的那個假如,可以通過 2 、3、 4的方法實現。

 

參考:

https://zhidao.baidu.com/question/1509864528785316100.html(以上內容轉自此篇文章)