工作方式
在標準的C/S模式計算機網路中,網路伺服器 可在兩種不同的方式下工作:循環方式(iterative mode)和並發方式(concur-rent mode)。循環方式是在伺服器中一次只能運行一個伺服器進程,當多個客戶請求服務時,伺服器進程就按請求的先後次序依次做出回響;並發方式則可在伺服器中同時運行多個伺服器進程,而每個伺服器進程都對某個特定的客戶請求做出回響。
這兩種伺服器模型各有優缺點。當服務耗時較長時,如果採用循環伺服器,客戶機將得不到快速回響,甚至可能出現客戶機請求被拒絕的情況,但是這種伺服器消耗的系統資源很少,實現起來比較簡單。並發伺服器為每一個請求創建一個子進程,可以保證同時處理多個客戶機請求,使用這種伺服器模型一般不會造成拒絕客戶機請求的情況,但是如果頻繁創建子進程,將會加重伺服器的負擔。在實際的網路套用中,伺服器要同時處理多個客戶的請求,所以通常採用並發方式。
實現技術
通常,網路伺服器可以採用如下4種實現技術:
1)“”即時創建,即時銷毀策略“”,即伺服器和每個發出請求的客戶機進行連線,並為每個客戶機的請求創建一個子進程來處理。
並發伺服器啟動後,系統守護進程在某個固定的連線埠監聽是否有客戶發起連線請求。如果收到某個客戶的請求,伺服器守護進程創建一個子進程來處理客戶的請求,而守護進程則繼續在原有連線埠監聽其他客戶的連線請求。子進程完成對客戶的服務後,關閉連線,釋放其占有的資源,自動退出。
顯然,這種並發伺服器存在以下不足:(1).統時延長。在為客戶進程提供服務前,伺服器父進程需創建一個新的子進程,因此客戶進程必須至少等待創建一個子進程的時延。對於一些實時性要求很高的網路套用,這樣的時延是不能忍受的;(2)潰源耗用大。對於每個客戶進程的請求,伺服器父進程都要創建新的子進程。每個子進程都要占用幾乎與父進程相當的資源。因此,在許多系統中都對創建進程的數量做了限制;(3)潰源利用率低。父進程和子進程間缺乏一種有效的進程間通信機制,使得父進程不能有效地對子進程進行控制,同時子進程在完成對客戶進程的服務後將自行終止,不能被重複利用.不能繼續為其袖客戶講程服務。
2)伺服器預先創建多個子進程,由子進程處理客戶機請求,這種方式稱為“預創建’。
基於“預創建”技術的伺服器解決了客戶進程等待的時延問題,但也存在以下問題:(1)務器端始終保持固定數量的子進程,這樣即使沒有客戶進程的連線請求,系統中也將保持這些空閒的進程,造成對系統資源的浪費;(2)期民務器只是提供固定數量的子進程,如果客戶連線請求數超過了子進程數,那么客戶進程必須等待其它客戶進程的服務終止,這可能造成更大的時延;(3如果某個子進程異常退出,伺服器端可同時支持的客戶進程連線數將減1,這將削弱伺服器的並發處理能力。
為了克服上述問題,可採用動態“預創建”技術,即伺服器父進程根據系統的資源狀態或用戶的請求數量創建一定數量的子進程,然後將其放到一個“池子”中,形成一個“進程池”。當有客戶請求到達時,不是新創建一個進程為其服務,而是從“池子”中選擇一個空閒的進程為其服務。服務完畢後,進程進入空閒狀態。如果同時請求的客戶數目比進程池中進程數目要大,系統可根據系統資源的狀態,增加“池中”進程的數量,也可以將客戶請求排隊或簡單的丟棄,這要視具體情況而定。採用這種技術,加快了伺服器的回響時間,提高了資源的利用效率,有效地防止了由於客戶請求過多而造成的伺服器崩潰問題。
3)伺服器用函式select實現對多個客戶機連線的I/O多路復用;
除了可以採用多進程或多執行緒實現並發伺服器之外,還可以採用I/O多路復用技術。通過該技術,系統核心緩衝I/O數據,當某些I/O準備好後,系統將通知應用程式該I/O可讀或可寫,這樣應用程式可馬上完成相應的I/O作,而不再等待系統完成相應I/O操作,從而應用程式不必因等待I/O操作而阻塞。
與多進程或多執行緒相比,I/O多路復用技術的最大優勢是系統開銷小,系統不必創建進程和執行緒,也不必維護這些進程和執行緒,從而大大減少了系統的開銷。
4)超級伺服器激活輔助伺服器的策略。
這種模式的伺服器需要多個伺服器,其中一個伺服器(超級伺服器)在熟知的連線埠等待客戶發來的請求。超級伺服器一旦收到客戶的請求,就立即激活一個從屬伺服器,並將該用戶的請求轉移到激活的從屬伺服器上。然後從屬伺服器與客戶程式保持連線,完成對客戶請求的處理,而超級伺服器繼續在原來連線埠監聽客戶的請求。
在這種伺服器模型中,每個從屬伺服器仍然是一個並發伺服器,因而系統的並發能力顯著提高,但是,採用這種伺服器模型需要增加伺服器的數量,因而增加了系統的成本,通常用作一些訪問量比較大的網路伺服器。
組成及劃分
伺服器軟體
伺服器軟體的定義如前面所述,伺服器軟體工作在客戶端-伺服器或瀏覽器-伺服器的方式,有很多形式的伺服器,常用的包括:
檔案伺服器- 如Novell的NetWare
資料庫伺服器- 如Oracle資料庫伺服器, MySQL, PostgreSQL, Microsoft SQL Server等
郵件伺服器- Sendmail, Postfix, Qmail, Microsoft Exchange,Lotus Domino等
網頁伺服器 - 如Apache, thttpd, 微軟的IIS等
FTP伺服器- Pureftpd, Proftpd, WU-ftpd, Serv-U,VSFTP等
套用伺服器- 如Bea公司的WebLogic,JBoss,Sun的GlassFish
代理伺服器- 如Squid cache
計算機名稱轉換伺服器 - 如微軟的WINS伺服器
伺服器硬體
伺服器大都採用部件冗餘技術、RAID技術、記憶體糾錯技術和管理軟體。高端的伺服器採用多處理器、支持雙cpu以上的對稱處理器結構。在選擇伺服器硬體時,除了考慮檔次和具體功能定位外,還需要重點了解伺服器的主要參數和特性,包括處理器構架、可擴展性 、伺服器結構、I/0能力和故障恢復能力等。可以按多種標準來劃分伺服器類型。
1. 根據套用層次或規模檔次劃分
● 入門級伺服器:最低檔伺服器,主要用於辦公室的檔案和列印服務。
● 工作組級伺服器:適於規模較小的網路,適用於為中小企業提供Web、郵件等服務。
● 部門級伺服器:中檔伺服器,適合中型企業的數據中心、Web網站等套用。
● 企業級伺服器:高檔伺服器,具有超強的數據處理能力,適合作為大型網路資料庫伺服器。
2. 根據伺服器結構劃分
● 台式伺服器:也稱為塔式伺服器,這是最為傳統的結構,具有較好的擴展性。
● 機架式伺服器:機架式伺服器安裝在標準的19英寸機櫃裡面,根據高度有1U(1U=1.75英寸)、2U、4U和6U等規格。
● 刀片式伺服器:是一種高可用、高密度的低成本伺服器平台,專門為特殊套用行業和高密度計算機環境設計,每一塊“刀片”實際上就是一塊系統主機板。
● 機櫃式伺服器:機箱是機櫃式的,在伺服器中需要安裝許多模組組件。
3. 根據硬體類型劃分
● 專用伺服器:專門設計的高級伺服器,採用專門的作業系統(如UNIX、MVS、VMS等),主要用於資料庫服務和Internet業務,一般由專業公司提供全套軟硬體系統及全程服務。
● PC伺服器:以Intel或Motorola專用處理器為核心構成的伺服器,兼容多種網路作業系統和網路套用軟體,性能可達到中檔RISC伺服器水平。
詞義辨析
有時,我們會看到不同於網路伺服器的另一個概念Web伺服器,這兩種定義會引起混淆。前者是指用於網站的計算機,後者是指包括Apache這樣的軟體,運行在一台計算機上以管理網頁組件和回應網頁瀏覽器請求的 程式。
安全措施
(1)做好伺服器系統備份,以備及時恢復。
(2)關閉不必要的服務連線埠,只開需要的連線埠。
(3)異常進程安全檢查,及時對伺服器作業系統安裝更新。
(4)系統中安裝軟體防火牆,防毒軟體。
(5)開啟日誌服務檢查黑客行蹤。
(6)加密、認證安全技術的實施。
間接影響
各大搜尋引擎都在選擇一些用戶體驗度比較好的網站做出比較好的排名,網站的PV值直接影響到網站的排名。那么,如果你選擇的是這樣的優質伺服器租用商的的產品的話,每個訪客在訪問你的網站的時候速度都很快,自然PV值就會高。那么在你網站的體驗自然就會好,如果每個訪客都這樣的話,慢慢地搜尋引擎的友好度就會有所提升。那么自然給予比較好的權重。所以優質的網路暫存空間是客戶體驗度提升的基礎。