HTTP協議的介紹,Web服務器配置,虛擬主機的配置,如何用SSL實現HTTPS。

    Web服務通常可以分爲靜態Web服務和動態Web服務兩種,在靜態Web服務中,服務器只是負責把存儲的文檔發送給客戶端瀏覽器,在此過程中傳輸的網頁 只有在專業的編輯人員對它們修改之後,頁面纔會發生變化。而動態Web服務能夠實現瀏覽器和服務器之間的數據交互,Web服務通過CGI、ASP、PHP 等動態網站技術,客戶端可以向服務器請求可執行的程序,服務器會執行該程序,或者把請求傳送給應用程序服務器執行,之後返回結果給客戶端。

    HTTP超文本傳輸協議 (HTTP-Hypertext transfer protocol) 是一種詳細規定了瀏覽器和萬維網服務器之間互相通信的規則,通過因特網傳送萬維網文檔的數據傳送協議。

wKioL1OMoDbxzwQZAAD1UEbQoCw815.jpg

   

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>

        <headers>


        <entity-body>

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

wKiom1OMq9WAZF3aAAMkHKTvLBo493.jpg

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:

wKiom1OMtxziufnRAAIJzVdWWRw619.jpg

    配置加載模塊:

wKiom1OMt82iGdPPAAHinyMAMrw796.jpg

實例1、創建虛擬主機192.168.1.200:80爲tuchaohost1,192.168.1.210:8866爲tuchaohost2,定義日誌文件,允許執行CGI腳本。

    虛擬主機和主服務器不能同時使用:關閉主服務器,註釋主服務器的DocumentRoot。

wKiom1OMvcXz5-GEAAGolYSYejY580.jpg

添加監聽的端口

wKiom1OMweXTjwyvAABHOtO0guk601.jpg

配置虛擬主機

wKiom1OMyRiDEVcrAAE7PFEgIL8416.jpg

訪問下192.168.1.200

wKioL1OMyabx5bBnAAC81Jn77A8455.jpg

訪問下192.168.1.210:8866

wKiom1OMyfXxHpBUAADEErnWl3s423.jpg

好,這兩個都配置成功了,接下來我們配置一個基於主機名的虛擬主機,並且設置權限訪問

使用htpasswd命令創建用戶文件。

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

wKiom1ONc9XBh744AACYod_jm7U179.jpg

然後配置httpd.conf主配置文件:

wKiom1ONeUKha_2TAAE2MMR9eEM642.jpg

重啓服務

# /etc/init.d/httpd restart

用另一臺主機訪問試試:

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

wKiom1ONegiC9umsAAIBSVgiGHc085.jpg

輸入好後,點確定。 就能看到網頁了,這就是基於主機名的虛擬主機。

wKioL1ONehPxgNyMAAD-UColiV0011.jpg

下面來看看如何使用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

wKioL1ONhz-Cc8f7AAJPPRBJZ7E340.jpg

配置證書的文件和私鑰路徑:

wKiom1ONh5jCn0yEAAGep7ZO3R4920.jpg配置完成後重啓服務,來用openssl測試下。

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

wKioL1ONh_zilPk0AAL9h2qHqMA682.jpg

GET / HTTP/1.1

Host:www.study.com

wKioL1ONjt6x4Y0DAAFAyldqRxw754.jpg

我們可以把CA的證書複製到windows客戶端,把尾椎改爲.crt雙擊安裝,實現訪問加密。wKiom1ONj1vRbpRJAACtAgyvlag476.jpg


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

有問題歡迎與我交流:1183710107


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章