根據伺服器的用途,來決定伺服器的效能、容量和可靠性需求。
典型的基礎架構:Web伺服器、資料伺服器、應用程式伺服器來展開討論。
·Web伺服器·
Web伺服器對硬體要求不高,一般的硬體配置(2顆4核、8G記憶體、1T硬碟)即可滿足需求,如果後期Web服務訪問量上升,只需要新增同等配置的伺服器加入負載均衡叢集即可實現Web服務的效能擴充套件。
·資料伺服器·
資料伺服器對硬體要求最高,特徵是CPU要足夠快、記憶體足夠大,磁碟IO足夠快和穩定。比如:MySQL、Oracle伺服器要求CPU配置一定要好,磁碟最好使用SSD系列。而Redis伺服器主要是記憶體型應用,所以要求記憶體一定要足夠大,並且可擴充套件,對磁碟和CPU要求就沒那麼高。
·應用程式伺服器·
應用伺服器的典型特徵是承擔了計算和功能實現。對於可靠性問題,如果你只有一臺伺服器的話,這臺伺服器必須足夠可靠,磁碟做成RAID1陣列是必不可少。
·其它公用伺服器·
還有一些公用的伺服器,例如郵件伺服器、DNS伺服器、域控伺服器。對穩定性要求較高,因此一般會推薦有至少兩臺進行主、備部署。對硬體來說,沒有特殊的需求,所以一般的硬體即可。
回覆列表
-
1 # 蓮花童子哪吒
伺服器是提供計算服務的裝置。由於伺服器需要響應服務請求,並進行處理,因此一般來說伺服器應具備承擔服務並且保障服務的能力
伺服器要執行什麼應用是要根據放在伺服器上面的專案所需環境來選擇應用。不同專案的環境都是不一樣的。下面就由PHP專案環境來舉例說明。不論什麼語言開發的專案。一般都離不開WEB伺服器、動態伺服器、資料庫伺服器、快取伺服器等。
WEB伺服器WEB伺服器並不等於伺服器。因為有的人會說部署專案的時候需要一臺web伺服器。這裡的web伺服器是指定真正的伺服器。
那什麼是伺服器和Web伺服器呢?
伺服器的構成包括處理器、硬碟、記憶體、系統匯流排等,和通用的計算機架構類似。
WEB伺服器指的接入使用者的HTTP請求,它是一個安裝在伺服器系統上面的軟體。常見有nginx、Apache等
如果後WEB期的使用者訪問量過大,可擴張伺服器機器和加入負載均衡叢集來實現服務效能的橫向擴充套件。縱向擴充套件就是最佳化你當前伺服器的配置效能。
例如:8核、16G記憶體伺服器,給它開啟多個程序來進行服務請求的接入。這樣能讓單臺伺服器的效能更優。一般訪問量大都是橫、縱結合。
動態伺服器一個動態網站它是靜態檔案和動態指令碼語言的結合。動態指令碼它需要動態伺服器來進行解析執行處理。執行成功後在返回給我們使用者所需的內容。
比如說像PHP裡面的PHP-FPM或者Java裡面的Tomcat,這些都是屬於動態指令碼語言需要的服務執行。只有它們才能去執行和識別所寫的指令碼。
資料庫伺服器資料庫伺服器簡稱資料庫,主要是用於網站的資料儲存工作。它需要CPU足夠快、記憶體足夠大,磁碟IO足夠快和穩定。因為你指令碼在處理資料的時候,需要去從資料庫裡面去查詢。就像我們的大倉庫找一件衣服,肯定沒得你自己在衣櫥裡找一件衣服那方便。所以一般後期資料量過大的時候我們還需要進行資料庫最佳化,例如:分庫分表、讀寫分類、索引最佳化等等
常用的資料庫有:MySQL、Oracle伺服器要求CPU配置比較好。
快取伺服器快取伺服器又稱非關係資料庫。一般快取都是基於伺服器的記憶體來作為資料的儲存單位。所以它對於記憶體的需要比較高。因為在快取裡面的話,它的IO的讀寫能力是要強於普通磁碟IO讀寫能力。
這也是為什麼說在使用者量比較大的情況下面我們會用會有快取來存熱點資料。從而讓使用者請求得到更快響應。因為資料庫查詢起來比較費時,但熱點資料又是使用者每時每刻來訪問獲取。
常見的有:Redis、Memcached 等
一般簡單的網站的話,就是這幾部分來組成,但如果說網站的規模比較大的話,那麼我們的伺服器所需要的內容可能會更多一些,但是它也是離不開這些基本組成。