1. 程式人生 > >0 httpd2.2配置詳解-Apache配置檔案詳解-(二)

0 httpd2.2配置詳解-Apache配置檔案詳解-(二)

httpd-2.2

    15 curl命令

        curl是基於URL語法在命令列方式下工作的檔案傳輸工具,它支援FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE及LDAP等協議。curl支援HTTPS認證,並且支援HTTP的POST、PUT等方法, FTP上傳, kerberos認證,HTTP上傳,代理伺服器, cookies, 使用者名稱/密碼認證, 下載檔案斷點續傳,上載檔案斷點續傳, http代理伺服器管道( proxy tunneling), 甚至它還支援IPv6, socks5代理伺服器,,通過http代理伺服器上傳檔案到FTP伺服器等等,功能十分強大。

        curl [options] [URL...]

        curl的常用選項:

            -A/--user-agent <string> 設定使用者代理髮送給伺服器
            -basic 使用HTTP基本認證
            --tcp-nodelay 使用TCP_NODELAY選項
            -e/--referer <URL> 來源網址
            --cacert <file> CA證書 (SSL)
            --compressed 要求返回是壓縮的格式
            -H/--header <line>自定義首部資訊傳遞給伺服器
            -I/--head 只顯示響應報文首部資訊
            --limit-rate <rate> 設定傳輸速度
            -u/--user <user[:password]>設定伺服器的使用者和密碼
            -0/--http1.0 使用HTTP 1.0 

        用法:curl [options] [URL...]

        另一個工具:elinks
            elinks [OPTION]... [URL]...
                -dump: 不進入互動式模式,而直接將URL的內容輸出至標準輸出; 

    16 使用mod_deflate模組壓縮頁面優化傳輸速度

        適用場景:
            (1) 節約頻寬,額外消耗CPU;同時,可能有些較老瀏覽器不支援;
            (2) 壓縮適於壓縮的資源,例如檔案檔案;

        SetOutputFilter DEFLATE

        # mod_deflate configuration

        # Restrict compression to these MIME types
        AddOutputFilterByType DEFLATE text/plain 
        AddOutputFilterByType DEFLATE text/html
        AddOutputFilterByType DEFLATE application/xhtml+xml
        AddOutputFilterByType DEFLATE text/xml
        AddOutputFilterByType DEFLATE application/xml
        AddOutputFilterByType DEFLATE application/x-javascript
        AddOutputFilterByType DEFLATE text/javascript
        AddOutputFilterByType DEFLATE text/css

        # Level of compression (Highest 9 - Lowest 1)
        DeflateCompressionLevel 9

        # Netscape 4.x has some problems.
        BrowserMatch ^Mozilla/4 gzip-only-text/html

        # Netscape 4.06-4.08 have some more problems
        BrowserMatch ^Mozilla/4\.0[678] no-gzip

        # MSIE masquerades as Netscape, but it is fine
        BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

    17、https

        http over ssl = https 443/tcp
            ssl: v3
            tls: v1

            https://

        SSL會話的簡化過程
            (1) 客戶端傳送可供選擇的加密方式,並向伺服器請求證書;
            (2) 伺服器端傳送證書以及選定的加密方式給客戶端;
            (3) 客戶端取得證書並進行證書驗正:
                如果信任給其發證書的CA:
                    (a) 驗正證書來源的合法性;用CA的公鑰解密證書上數字簽名;
                    (b) 驗正證書的內容的合法性:完整性驗正
                    (c) 檢查證書的有效期限;
                    (d) 檢查證書是否被吊銷;
                    (e) 證書中擁有者的名字,與訪問的目標主機要一致;
            (4) 客戶端生成臨時會話金鑰(對稱金鑰),並使用伺服器端的公鑰加密此資料傳送給伺服器,完成金鑰交換;
            (5) 服務用此金鑰加密使用者請求的資源,響應給客戶端;

            注意:SSL會話是基於IP地址建立;所以單IP的主機上,僅可以使用一個https虛擬主機;

        回顧幾個術語:PKI,CA,CRL,X.509 (v1, v2, v3)

        配置httpd支援https:
            (1) 為伺服器申請數字證書;
                測試:通過私建CA發證書
                    (a) 建立私有CA
                    (b) 在伺服器建立證書籤署請求
                    (c) CA簽證
            (2) 配置httpd支援使用ssl,及使用的證書;
                # yum -y install mod_ssl

                配置檔案:/etc/httpd/conf.d/ssl.conf
                    DocumentRoot
                    ServerName
                    SSLCertificateFile
                    SSLCertificateKeyFile
            (3) 測試基於https訪問相應的主機;
                # openssl s_client [-connect host:port] [-cert filename] [-CApath directory] [-CAfile filename]

    18、httpd自帶的工具程式

        htpasswd: basic認證基於檔案實現時,用到的賬號密碼檔案生成工具;
        apachectl:httpd自帶的服務控制指令碼,支援start, stop;
        apxs:由httpd-devel包提供的,擴充套件httpd使用第三方模組的工具;
        rotatelogs:日誌滾動工具;
            access.log -->
            access.log, access.1.log
            access.log, access.1.log, access.2.log
        suexec:
            訪問某些有特殊許可權配置的資源時,臨時切換至指定使用者執行;

        ab: apache benchmark

    19、http壓力測試工具
        ab
        webbench
        http_load

        jmeter
        loadrunner

        tcpcopy

        ab [OPTIONS] URL
            -n: 總的請求數
            -c:模擬的併發數
            -k: 以持久連線模式測試

        ulimit -n #: 調整當前使用者所同時開啟的檔案數;