李一諤高可用性系統(三):負載均衡器上的HaProxy(Reverse Proxy)
作為負載均衡器(Load Balancer)上的靈魂,HaProxy是一個反向代理(Reverse Proxy),能將外面的request轉至backend servers,通常會用輪流分派的原則,同時亦可設定比重。結構圖如下:
當然如有backend server發生問題(下圖紅色部份),它會自動探測並將工作轉至其他的伺服器(下圖緑色部份)。這可大大減省管理者的工作壓力,因為這令救急的工作變得不太急迫,可以在有空閒時才處理。管理介面如下:
作為高可用性系統的靈魂,HaProxy能在一般配置的伺服器上工作,對硬件的要求並不高,同時它的穏定及安全性亦十分出眾。
除了既穏定又安全外,它亦對Cookies的處理十分周到,可以將登入的資料與某台伺服器連結,直至此次瀏覽網站的要求完結才會轉用下一個伺服器,確保登入資料不會出錯或外洩。
上面的優點當然是重要,但是在本校應用中它更有另一個好處,就是可以擴容,即是加大某些網站的處理能力。以Moodle2系統為例,我們現在有九部backend servers,如果老師們大力支持使用Moodle2作教學,可能會令致這幾部伺服器不能負荷,我們只需再加添多幾部伺服器,便可支持老師及同學長期使用Moodle2。這就是我們常說的終極目標,亦是我們推動全校eLearning的基礎。