「高可用性」(High Availability)通常來描述一個系統經過專門的設計,從而減少停工時間,而保持其服務的高度可用性。 Nginx於Keepalived可以實現高可用,實現雙機熱備自動切換,這種操作在現在的集群系統中,比較的常見,還有,透過keepalived和redis實現熱備份的,還有和mysql實現的,類似的案例挺多。
Keepalived是一個免費開源的,用C編寫的類似於layer3, 4 & 7交換機制軟體,具備我們平時說的第3層、第4層和第7層交換器的功能。主要提供loadbalancing(負載平衡)和high-availability(高可用)功能,負載平衡實現需要依賴Linux的虛擬服務核心模組(ipvs),而高可用是透過VRRP協定實現多台機器之間的故障轉移服務。
上圖是Keepalived的功能體系結構,大致分為兩層:使用者空間(user space)和核心空間(kernel space)。
核心空間:主要包含IPVS(IP虛擬伺服器,用於實現網路服務的負載平衡)和NETLINK(提供進階路由及其他相關的網路功能)兩個部位。
使用者空間:
WatchDog:負載監控checkers與VRRP行程的狀況
VRRP Stack:負載負載平衡器之間的失敗切換FailOver ,如果只用一個負載均稀器,則VRRP不是必須的。
Checkers:負責真實伺服器的健康檢查healthchecking,是keepalived最主要的功能。換言之,可以沒有VRRP Stack,但健康檢查healthchecking是一定要有的。
IPVS wrapper:使用者傳送設定的規則到核心ipvs程式碼
Netlink Reflector:用來設定vrrp的vip位址等。
Keepalived的所有功能都是設定keepalived.conf檔案來實現的。
更多Nginx相關技術文章,請造訪Nginx使用教學欄位進行學習!
以上是nginx高可用是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!