nginx+web服務器可以實現負載均衡,但是一臺nginx也是有限的,如果并非量高的話,在他的上層如何實現負載均衡。 如果是dns或者cdn的話,建多個機房,勢必有多個機房數據同步的問題。 有什么這方面的好的資料嗎?
解答:
這方面的資料,基本都是一塊一塊不完整的。我大概跟你說一個基本架構:? ? ? ? ? ? ? (推薦學習:nginx教程)
DNS服務器,如果資金充足的話,建議使用BGP機房,2-3臺DNS服務器均衡,通常使用bind軟件。如果資金緊的話,可以購買專業的DNS服務,比如國內的dnspod。
CDN服務器,一開始如果想省事,可以買專業公司的服務,如chinacache,但隨著發展成本會越來越高。自建的話,可能分別搭建,放電信、聯通、移動等不同機房的服務器,通過DNS做動態解析。超大網站的話,可以用Squid,普通中至大型用Nginx,內部玩玩用Varnish。
前端均衡,資金充足的話,可以使用硬件設備,幾十萬一臺。自已有技術隊伍的話,就用Nginx/Haproxy+Keepalived等自已組建前端。均衡的方式都比較靈活,隨機、權重、IP、URL都有。
同步的問題要看同步什么東西,普通的可以實時文件同步。但數據庫的話,要看具體類型選擇同步方式了。
后端的應用服務器和數據庫集群,要看流量規劃了。
多臺Nginx實現均衡,有幾種方法:
1、每臺Nginx都有公網地址,在域名處設置同個域名多個指向,最簡單實現輪洵。但故障切負會慢一點。
2、一臺公網Nginx通過upstream功能,輪洵、IP、url多方式分發到內網多臺nginx。但公網的nginx如果Down機的話,內網全斷。
3、一對公網Nginx加三個公網IP,通過Keepalive實現高可用,再upstream到內網。
4、一臺硬件均衡服務器在前端,再通過硬件均衡到內容的其它服務器。
你所說的那個假如,可以通過 2 、3、 4的方法實現。