隨著IT運維的不斷發展,尤其的Linux的飛速發展,越來越多的企業開始使用Linux操作系統平台,例如CentOS、RedHat、Ubuntu、Fedora等等,成千上億個網站湧現在當今互聯網,互聯網已經成為必不可少的工具,那今天我們跟大家一起來分享討論目前用的最多的Linux下主流網站架構:
LVS+KEEPALIVED(heartbeat)+Squid+Nginx/Apache+JAVA/PHP
+MySQL/MariaDB等,分享一個簡單的拓撲圖,供各位同學實驗參考
一般網站總體分為四層,依次為前端負載均衡、中間代理、後端服務、數據庫層。
當然除了這個整體的流程,不同的公司擴展的東西也非常多,各種系統不斷的往這個架構裡面添加,形成一個非常龐大、復雜的系統。那接下來我們對每個層級運維人員需要注意的細節:
1) LVS負載均衡層
LVS負載均衡層主要用來抵御大流量及轉發數據功能,一般基於TCP/IP 四層協議進行轉發,根據不同的內部環境使用的轉發方式也不一樣,通常DR模式效率比較高,LVS+keepalived結合,可以使用keepalived去管理我們整個配置文件,讓負責均衡變得簡單實用,可以各種策劃來檢查後端Nginx或者Squid服務是否正常。
LVS簡單工作原理:用戶請求LVS VIP,LVS根據轉發方式和算法,將請求轉發給後端服務器,後端服務器接受到請求,返回給用戶,對於用戶來說,看不到WEB後端具體的應用。
運維人員在維護LVS中,需要密切關注LVS當前轉發連接數及系統LVS日志。通過監控平台監控VIP、真實IP的情況、連接數的情況。
2) Nginx反向代理層
Nginx是目前主流的高性能WEB服務器,Nginx因為非常不錯的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗等優點,目前發展勢頭非常火爆。
Nginx主要基於7層應用,能夠實現各種規則轉發,反向代理我們後端的JAVA、PHP動態服務器,同時Nginx本身處理靜態頁面的能力官方理論並發5w/s,同時Nginx還可以作為緩存服務器存儲我們靜態頁面緩存,性能跟squid不相上下。
作為IT運維人員在日常運維中,需要長期的關注網站的整體運行情況,分析網站瓶頸,不斷優化Nginx的相關參數,並確保Nginx跟後端服務連接是否有異常等。
3) 後端服務層
後端存放我們真正的網站和後台服務,通過前端Nnginx調用,後端常見的服務解析軟件,如果是jsp語言的話,容器為Tomcat、Resin、Weblogic等等。
如果是PHP程序,我們就需要安裝PHP環境來解析php代碼,然後通過前端Nginx反向代理提供給用戶訪問。
在日常的運維中,需要注意後端服務層的監控,及連接數的問題,要實時關注並監控後端服務的正常,配置多實例,冗余案例。
4) 數據庫層
目前互聯網主流數據庫有Mysql、Mariadb、mongodb、Oracle等等,對於數據庫是整個架構的核心層,而且數據是企業生存之本,所以數據庫的架構和維護也是至關重要的。中大型的互聯網公司都有自己專職的DBA人員負責Mysql的運行和維護。
對於IT運維人員在維護數據庫時需要密切關注數據庫並發數、連接池等變化,關注數據庫主從、讀寫分離狀態及日志的變化情況,並制定完整的備份機制完成數據庫的備份,有問題及時處理。