天天看點

HTTP協定的介紹,Web伺服器配置,虛拟主機的配置,如何用SSL實作HTTPS。

 Web服務通常可以分為靜态Web服務和動态Web服務兩種,在靜态Web服務中,伺服器隻是負責把存儲的文檔發送給用戶端浏覽器,在此過程中傳輸的網頁 隻有在專業的編輯人員對它們修改之後,頁面才會發生變化。而動态Web服務能夠實作浏覽器和伺服器之間的資料互動,Web服務通過CGI、ASP、PHP 等動态網站技術,用戶端可以向伺服器請求可執行的程式,伺服器會執行該程式,或者把請求傳送給應用程式伺服器執行,之後傳回結果給用戶端。

    HTTP超文本傳輸協定 (HTTP-Hypertext transfer protocol) 是一種詳細規定了浏覽器和網際網路伺服器之間互相通信的規則,通過網際網路傳送網際網路文檔的資料傳送協定。

HTTP 請求方法:

    GET:請求一個資源。

    PUT:向指定資源位置上傳内容。

    HEAD:僅請求響應首部。

    DELETE:請求***資源。

    POST: 向指定資源送出資料進行處理請求(送出表單)。

    OPTIONS:傳回請求的資源所支援的方法的方法。

HTTP響應碼:

    1xx:資訊狀态碼。

    2xx:成功狀态碼。

    3xx:重定向狀态碼:

    301:永久重定向,請求的資源已被永久的移動到新URI,傳回資訊會包括新的URI,浏覽器會自動定向到新URI。今後任何新的請求都應使用新的URI代替。

    302:臨時重定向,資源隻是臨時被移動。用戶端應繼續使用原有URI。

    304:Not Modified,所請求的資源未修改。

    4xx:用戶端錯誤:

    404:Not Found

    5xx:伺服器端錯誤

    500:Internal Server Error 伺服器内部錯誤,無法完成請求

    502:Bad Gateway 充當網關或代理的伺服器,從遠端伺服器接收到了一個無效的請求。

HTTP封包請求的首部:

    request:

        <method> <request-URL> <version>

        <headers>

        <entity-body>

    response:

        <version> <status> <reason-phrase>

    我們用Telnet對純文字的HTTP發出一個請求:

Apache 工作模型:

    MPM(Multi -Processing Modules,多道處理子產品。

        prefork:一個程序響應一個請求。

        worker:一個程序生成多個線程,一個線程響應一個請求。

        event:事件驅動模式

下面來看看如何用Apache程式配置一個Web伺服器:

    httpd 指令的基本使用: 

        -t 測試文法錯誤

        -l 列出已編譯的子產品

        -t -D DUMP_MODULES 顯示全部已裝載的子產品

    配置所選用的MPM的屬性

        編輯/etc/sysconfig/httpd配置檔案,定義如下行:

            HTTPD=/usr/sbin/httpd.worker

    配置伺服器支援KeepAlive:

    配置加載子產品:

執行個體1、建立虛拟主機192.168.1.200:80為tuchaohost1,192.168.1.210:8866為tuchaohost2,定義日志檔案,允許執行CGI腳本。

    虛拟主機和主伺服器不能同時使用:關閉主伺服器,注釋主伺服器的DocumentRoot。

添加監聽的端口

配置虛拟主機

通路下192.168.1.200

通路下192.168.1.210:8866

好,這兩個都配置成功了,接下來我們配置一個基于主機名的虛拟主機,并且設定權限通路

使用htpasswd指令建立使用者檔案。

# htpasswd -c -s  /etc/httpd/conf/.htpass tuchao

然後配置httpd.conf主配置檔案:

重新開機服務

# /etc/init.d/httpd restart

用另一台主機通路試試:

我們配置了身份驗證的,要輸入使用者名密碼。

輸入好後,點确定。 就能看到網頁了,這就是基于主機名的虛拟主機。

下面來看看如何使用SSL來實作HTTPS:

先安裝mod_ssl

# yum install mod_ssl -y

自建CA:

    # cd /etc/pki/CA/

    # openssl genrsa -out private/cakey.pem 2048

    # openssl req -new -x509 -key private/cakey.pem  -out cacert.pem -days 365

為httpd生成私鑰,建立證書簽署請求,然後由CA簽署。

    # cd /etc/httpd/conf/ssl

    # openssl genrsa -out ./http.key 1024

    # openssl req -new -key http.key  -out httpd.csr

    # openssl ca -in httpd.csr -out httpd.crt -days 365

配置/etc/httpd/conf.d/ssl.conf

配置證書的檔案和私鑰路徑:

配置完成後重新開機服務,來用openssl測試下。

# openssl s_client -connect www.study.com:443 -CAfile /etc/pki/CA/cacert.pem

GET / HTTP/1.1

Host:www.study.com

我們可以把CA的證書複制到windows用戶端,把尾椎改為.crt輕按兩下安裝,實作通路加密。

好,基本配置就到這裡,休息會。

有問題歡迎與我交流:1183710107

本文轉自qw87112 51CTO部落格,原文連結:http://blog.51cto.com/tchuairen/1421292

繼續閱讀