天天看點

Web伺服器

Web伺服器:WEB伺服器也稱為WWW(WORLD WIDE WEB)伺服器,主要功能是提供網上資訊浏覽服務。 WWW 是 Internet的多媒體資訊查詢工具,是 Internet 上近年才發展起來的服務,也是發展最快和目前用的最廣泛的服務。正是因為有了WWW工具,才使得近年來 Internet 迅速發展,且使用者數量飛速增長。當Web浏覽器(用戶端)連到伺服器上并請求檔案時,伺服器将處理該請求并将檔案發送到該浏覽器上,附帶的資訊會告訴浏覽器如何檢視該檔案(即檔案類型)。伺服器使用HTTP(超文本傳輸協定)進行資訊交流,這就是人們常把它們稱為HTTPD伺服器的原因。

  Web伺服器是可以向送出請求的浏覽器提供文檔的程式

      1、伺服器是一種被動程式:隻有當Internet上運作在其他計算機中的浏覽器送出請求時,伺服器才會響應;

      2、最常用的Web伺服器是Apache和Nginx;

      3、Internet上的伺服器也稱為Web伺服器,是一台在Internet上具有獨立IP位址的計算機,可以向Internet上 的客戶機提供WWW、Email和FTP等各種Internet服務。

  Web伺服器可以解析(handles)HTTP協定。當Web伺服器接收到一個HTTP請求(request),會傳回一個HTTP響應(response),例如送回一個HTML頁面。為了處理一個請求(request),Web伺服器可以響應(response)一個靜态頁面或圖檔,進行頁面跳轉(redirect),或者把動态響應(dynamic response)的産生委托(delegate)給一些其它的程式例如CGI腳本,JSP(JavaServer Pages)腳本,servlets,ASP(Active Server Pages)腳本,伺服器端(server-side)JavaScript,或者一些其它的伺服器端(server-side)技術。無論它們的目的如何,這些伺服器端(server-side)的程式通常産生一個HTML的響應(response)來讓浏覽器可以浏覽。

Web伺服器的内容   

        ⑴應用層使用HTTP協定,監聽在80端口。    

        ⑵HTML文檔格式。    

        ⑶浏覽器統一資源定位器(URL)。

URI:Uniform Identifier 統一資源标示符,以統一的風格标記網際網路上的每個資源

URL:Uniform Resource Locator 統一資源定位符,定位網際網路上的統一資源 

    格式: 指定協定:伺服器端位址[:端口]:路徑(服務工作路徑) 其中端口可以省略

              如: ftp://192.168.0.1:80/pub/gls/server.repo

     指定協定:伺服器端位址[:端口]:路徑(檔案路徑) 其中端口可以省略

                如: http://192.168.0.1:80/index.html 

http資源擷取的方法:

     常用:1、GET : 主要向伺服器請求傳輸頁面

        2、HEAD : 主要擷取http協定的首部

        3、POST : 送出表單的過程

協定(響應)狀态碼:當用戶端向服務端送出請求時,服務端回應的資訊    

http的狀态碼分為以下幾類:

    1xx  純粹的說明資訊  (以1開頭的狀态)

    2xx  正常響應的資訊   如:#curl -I http://172.16.0.1/exam.8th.cfg

    3xx  URL重定向資訊   請求如:#curl -I http://172.16.0.1/index.html--> http://172....會有提示說明該檔案的位置已經改變到這個位置

    4xx  是一種暫時性錯誤狀态,用戶端錯誤或者用戶端請求的資源本來就不存在

    5xx  永久性錯誤狀态 

動态網站(伺服器):伺服器端有一段腳本程式,當用戶端請求的時候,服務端需要運作這個程式,并且執行以後的傳回内容在不同的請求之間很可能不一樣的機制。

 動态網站有以下特點:

             1.動态網站可以實作互動功能,如使用者注冊、資訊釋出、産品展示、訂單管理等等;

             2.動态網頁并不是獨立存在于伺服器的網頁檔案,而是浏覽器送出請求時才回報網頁;

             3.動态網頁中包含有伺服器端腳本,是以頁面檔案名常以asp、jsp、php等為字尾。但也可以使用URL靜态化技術,使網頁字尾顯示為HTML。是以不能以頁面檔案的字尾作為判斷網站的動态和靜态的唯一标準;

             4.動态網頁由于需要資料庫處理,是以動态網站的通路速度有點慢;

             5.動态網頁由于存在特殊代碼,是以相比較靜态網頁,其對搜尋引擎的友好程度相對要弱一些;

CGI:Common Gateway Interface 在實體上是一段程式,運作在伺服器上,提供同用戶端HTML頁面的接口。簡單來說就是,通用網關接口。

舉個例子來簡單說明下:現在的個人首頁上大部分都有一個留言本。留言本的工作是這樣的:先由使用者在用戶端輸入一些資訊,如名字之類的東西。接着使用者按一下“留言”(到目前為止工作都在用戶端),浏覽器把這些資訊傳送到伺服器的CGI目錄下特定的cgi程式中,于是cgi程式在伺服器上按照預定的方法進行處理。在本例中就是把使用者送出的資訊存入指定的檔案中。然後cgi程式給用戶端發送一個資訊,表示請求的任務已經結束。此時使用者在浏覽器裡将看到“留言結束”的字樣,整個過程結束。

功能:

絕大多數的CGI程式被用來解釋處理來自表單的輸入資訊,并在伺服器産生相應的處理,或将相應的資訊回報給浏覽器。CGI程式使網頁具有互動功能。

處理步驟:

⑴通過Internet把使用者請求送到伺服器。   

        ⑵伺服器接收使用者請求并交給CGI程式處理。   

        ⑶CGI程式把處理結果傳送給伺服器。   

        ⑷伺服器把結果送回到使用者。

PHP:是英文超級文本預處理語言Hypertext Preprocessor的縮寫,也可以認作是Person Home Page,個人首頁頁面。是一種HTML内嵌式的語言,是一種在伺服器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似于C語言,被廣泛的運用。它可以比CGI或者Perl更快速的執行動态網頁。用PHP做出的動态頁面與其他的程式設計語言相比,PHP是将程式嵌入到HTML文檔中去執行,執行效率比完全生成HTML标記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運作,使代碼運作更快。PHP具有非常強大的功能,所有的CGI的功能PHP都能實作,而且支援幾乎所有流行的資料庫以及作業系統。最重要的是PHP可以用C、C++進行程式的擴充!

PHP的特點:程式開發快,運作快,編輯簡單,實用性強,PHP是運作在伺服器端的腳本,可以運作在UNIX、LINUX、WINDOWS下。效率高:PHP消耗相當少的系統資源。PHP支援腳本語言為主,同為類C語言

php加速器 :ZendOptimizer,xcache,APC,eAccelarator  這些加速器作為php的插件存在    

php配置檔案: /etc/php.ini (主配置檔案)

Apache:目前是世界使用排名第一的Web伺服器軟體。它可以運作在幾乎所有廣泛使用的計算機平台上,由于其跨平台和安全性被廣泛使用,是最流行的Web

伺服器端軟體之一。Apache有多種産品,可以支援SSL技術,支援多個虛拟主機。Apache是以程序為基礎的結構,程序要比線程消耗更多的系統開支。

1、Apache其服務名:httpd

2、主配置檔案:/etc/httpd/conf/httpd.conf

3、apache又有很多子配置,是以其具有很多配置片段:

      其片段配置檔案:/etc/httpd/conf.d/*

4、其預設存放網頁的目錄:/var/www/html

 Apache有三中工作方式:

     1.CGI:apache響應每一個使用者請求,都有啟動一個獨立程序,而apache自身又要啟動一個程序,來等待使用者請求,生成一個web程序後,又要生成一個處

 理程式的程序,當處理完後,每一個程序又要按照之前的配置進行相應個數的程序銷毀,而伺服器的資源開銷也就開銷在這個地方了!

    2.子產品化:當使用者請求的有動态内容時,CGI的工作模式中那個應用程式的程序不在是獨立的程序,而是作為Apache的子產品存在,在Apache的位址空間中運作。

    3.FASTCGI:之前的apache的工作程序不在是一個獨立的程序了,而是作為一個服務存在,當個使用者請求的頁面存在動态内容時,伺服器就向這個服務發起

 請求,進行處理,而這種方式的好處是這個程序具有了自己的管理機制,而它又是獨立工作成一個服務,是以它也可以存放在不同的伺服器上,這樣就大大

 的提高了網站的性能。

Apache的工作受SElinux影響,是以在啟動apache之前将SElinux狀态暫時停用:

    #setenforce 0

檢視SElinux的工作狀态:

   #getenforce

Apache web伺服器軟體擁有以下特性:   

                   支援最新的http/1.1通信協定

                   擁有簡單而強有力的基于檔案的配置過程

           支援通用網關接口CGI

            支援基于IP和基于域名的虛拟主機

            支援多種方式的HTTP認證

             內建Perl處理子產品

             內建代理伺服器子產品

            支援實時監視伺服器狀态

                   定制伺服器日志

             支援伺服器端包含指令(SSI)

            支援安全Socket層(SSL)

             提供使用者會話過程的跟蹤

            支援FastCGI

MPM:Multi-Processing Module是一個多道處理子產品。與其他類型子產品不同的是,Apache必須有一個且僅有一個MPM處在運作中  

其分為兩種子產品類型:worker和prefork

  worker子產品是一個線程響一個請求。其穩定性不好,若一個使用者的請求導緻這個線程崩潰了,損壞了這個檔案,會産生連鎖反應,導緻整個程序崩潰,其它使用者也一并崩潰。簡而言之就是任何一個線程崩潰,會影響這個程序下的其它線程

  worker子產品說明:

   StartServers         2      ----> 啟動空閑程序個數

   MaxClients         150    ----> 使用者請求個數數

   MinSpareThreads    25     ----> 最小空閑線程個數

   MaxSpareThreads    75     ----> 最大空閑線程個數

   ThreadsPerChild    25     ----> 每一個程序至多啟動多少個線程

   MaxRequestsPerChild  0    ----> 不限制每個程序最多響應多少使用者的請求

  prefork子產品每個一個程序響應每一個請求。其性能穩定性好,任何一個程序崩潰都不會影響其它程序

  prefork子產品的說明:

   StartServer   8         ----> 在伺服器剛啟動就啟動程序個數

   MInSpareServer   5         ----> 最少空閑程序個數

   MaxClients    256       ----> 同時線上請求的個數(最大用戶端數)

   ServerLimit      256       ----> 定義最多啟動多少程序,最多響應多少個的使用者的請求

   MaxRequesPerCHild   4000      ----> 每個程序最多響應多少使用者的請求

上一篇: web伺服器
下一篇: Web伺服器