天天看點

總結之:CentOS 6.5 HTTPD服務的全面解讀及配置詳解(2)

CGI(Common Gateway Interface):通用網官接口、這是一種協定。

   httpd這個服務他隻是把用戶端的請求識别成哪種類型、而後響應給用戶端、他的識别是靠檔案的字尾名來識别檔案類型的和檔案内容、當他無法識别時他直接讓你下載下傳、讓你自己處理了、httpd本身是無法執行腳本的、現在我們在/usr/local/apache/htdocs/目錄下建立一個test.sh的腳本檔案、因為我這裡的apache的工根目錄就是這個路徑下、可以檢視一下配置檔案、也可以改配置檔案:

   # vim /usr/local/apache/htdocs/test.sh

   #!/bin/bash

   #

   echo "hello word!"

   OK、儲存退出、測試一下我們可以看到浏覽器提示讓我們下載下傳這個檔案

   于是我們把test.sh的字尾名給去掉、再去試一下:

   # mv test.sh test

   直接顯示檔案中的内容、沒有執行裡面的腳本、而我們想要的隻是他echo裡的值而已、在這裡httpd本身無法執行腳本、是以我們想在伺服器端執行腳本後再把結果返還給用戶端、那要怎麼實作呢、要執行test.sh腳本就要httpd基于CGI協定調用shell解析器了、那他又是怎麼調用的呢、這裡就用到我們所說的CGI了、那CGI的工作原理是什麼呢:

   注意:CGI這種協定過于粗糙和簡陋、并且基于這個模式通信時他要求後端被調用的這個解釋程式為了達到某種目的、為了擷取某種資源、必須以管理者的身份運作、這樣很危險。CGI很多程式都要求具有SUID(執行這個程式時不以使用者的身份運作、而是以檔案的屬主的身份運作)或SGID(以檔案的屬組運作)的權限。

   實作步驟:

   編輯主配置檔案、/etc/httpd24/httpd.conf、定義ScriptAlias、手動編譯時要把CGI的子產品啟用了(LoadModule cgi_module modules/mod_cgi.so)

   # vim /etc/httpd24/httpd.conf

   # mv /usr/local/apache/htdocs/test /usr/local/apache/cgi-bin/

   # cd /usr/local/apache/cgi-bin/

   # vim test

   儲存退出後測試一下、OK、這就可以看到腳本執行後傳回的結果了。

基于使用者的通路控制:

   如果我們要基于使用者的通路控制、那就意味我們的網頁檔案不是所有人都可以通路、也不管來自哪個IP位址、必須輸入一個合法的帳号和密碼才可以通路、這就是http的認證機制:

   認證類型有兩種:basic(基本認證)和digest(摘要認證)、基本認證的帳号和密碼是明文發送的、摘要認證是根據hash編碼以後發送的。

   編輯主配置檔案:

   # mkdir -p /www/htdocs/fin

   # cd /www/htdocs/fin

   # vim index.html

   # htpasswd -c -m /etc/httpd/conf/.htpasswd tom

   -c:表示建立這個檔案

   -m:表示用MD5加密的存放密碼

   好了、我們來通路試試、輸入tom的帳号密碼就可以通路了:

虛拟主機:

   在我們的web伺服器上想提供多個站點、比較我們想讓一個伺服器提供三個站點、那我們就用得虛拟主機了、所謂虛拟主機就是一個實體伺服器提供多個站點。

   要建立虛拟主機、那這些主機要怎麼去做差別呢、這裡我們有三種不同的方法、一個是基于不同的IP來實作虛拟主機的、另一種基于不同的端口來實作虛拟主機的、還有一種是基于主機名(FQND)來實作虛拟主機的、要注意一點的是:要使用虛拟主機提供多個站點時、得先關閉中心主機。

   先關閉/etc/httpd24/httpd.conf下的中心主機

   # vim /etc/httpd24/extra/httpd-vhosts.conf

   # cd /usr/local/apache/htdocs

   # mkdir a b

   分别在a和b下建立兩個html檔案

   <h2>www.a.com</h2>

   <h2>www.b.com</h2>

   修改了配置檔案都要重新開機一下服務:

   # service httpd24 reload

   測試一下基于不同的IP位址通路的、都可以了哦!

基于端口通路的、那我們就改一下配置檔案就可以了

   # vim /etc/httpd24/extar.httpd-vhosts.conf

   還要在主配置檔案中添加一個8080的端口:

   Listen 8080

   重新開機一直服務、再測試一下不同的端口通路:

   基于FQND的不同虛拟主機來通路的、在httpd2.2以上的版本當中要基于虛拟主機的通路有一個前提、得在定義虛拟主機的配置檔案裡把NameVirtualHost *:80這項給啟用起來、沒有這項得自己手動添加進去、則否将無法通路。

   # vim /etc/httpd24/extra/httpd-vhosts.conf 

   NameVirtualHost *:80

   配置好之後那怎麼解析我們的FQND呢、這裡我們就不做解析了、直接在windows下的hosts下明确指定就可以了、編輯C:\Windows\System32\drivers\etc\hosts下的這個檔案、加這三個域名位址就可以了、儲存退出測試一下咯:

   好、這就是我們基于虛拟主機的幾種不同的設定。

   httpd的各種配置各種功能、有待我們一一去設定、去嘗試、功能強大、配置簡單、不過、小生初來咋到、有什麼做得不妥之處還望大神指點、在此先謝謝你的關注了!

本文轉自 wei0164 51CTO部落格,原文連結:http://blog.51cto.com/tanxw/1381795,如需轉載請自行聯系原作者