多個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的方法實現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM