乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Apache 全攻略

       todaytomo 2007-01-07
      作者: josonchen   發(fā)表日期: 2006-10-03 01:51  




      操作步驟 1   安裝 Apache 2.0
        //查看是否安裝了 Apache
        # rpm -qa|grep httpd
        //將 Red Hat Linux 9 的第 1 張安裝光盤放入光驅后掛裝
        # mount /mnt/cdrom
        //進入光盤的 Red Hat/RPMS 目錄
        # cd /mnt/cdrom/Red Hat/RPMS
        //安裝所需的 RPM 包
        # rpm –ivh httpd-2.0.40-21.i386.rpm
        # rpm -ivh httpd-manual-2.0.40-21.i386.rpm
        //彈出光盤
        # cd;eject

      操作步驟 2     啟動并檢驗 Apache 是否被運行
        // 立即啟動
        # service httpd start
        //下面的操作用于檢驗 httpd 是否被啟動
        # pstree|grep httpd
          |- httpd---8*[httpd]   //表示已經(jīng)啟動
        #
        //可以使用下面的命令檢測配置文件語法的正確性
        # apachectl configtest

        httpd: Could not determine the server‘s fully qualified domain name,
        using 127.0.0.1 for ServerName
        Syntax OK
        注意:檢測配置文件語法時,還可以使用下面的命令:
        # httpd -t
        //可以使用如下命令查看運行狀態(tài)
        # service httpd status
        httpd (pid 2759 2758 2757 2756 2755 2754 2753 2752 2749) 正在運行...
        #

      操作步驟 3     查看 Apache 在 Red Hat 9 中的默認配置
        //查看配置文件
        # grep -v "#" /etc/httpd/conf/httpd.conf
        //當服務器響應主機頭(header)信息時顯示 Apache 的版本和操作系統(tǒng)名稱
        ServerTokens OS
        //設置服務器的根目錄
        ServerRoot "/etc/httpd"
        //設置運行 Apache 時使用的 PidFile 的路徑
        PidFile run/httpd.pid
        //若 300 秒后沒有收到或送出任何數(shù)據(jù)就切斷該連接
        Timeout 300
        //不使用保持連接的功能,即客戶一次請求連接只能響應一個文件
        /建議用戶將此參數(shù)的值設置為 On,即允許使用保持連接的功能
        KeepAlive Off
        //在使用保持連接功能時,設置客戶一次請求連接能響應文件的最大上限
        MaxKeepAliveRequests 100
        //在使用保持連接功能時,兩個相鄰的連接的時間間隔超過 15 秒,就切斷連接
        KeepAliveTimeout 15
        //設置使用 prefork MPM 運行方式的參數(shù),此運行方式是 Red Hat 默認的方式
        <IfModule prefork.c>
        //設置服務器啟動時運行的進程數(shù)
        StartServers     8
        //Apache 在運行時會根據(jù)負載的輕重自動調整空閑子進程的數(shù)目,
        //若存在低于 5 個空閑子進程,就創(chuàng)建一個新的子進程準備為客戶提供服務
        MinSpareServers   5
        //若存在高于 20 個空閑子進程,就創(chuàng)建逐一刪除子進程來提高系統(tǒng)性能
        MaxSpareServers 20
        //限制同一時間的連接數(shù)不能超過 150
        MaxClients     150
        //限制每個子進程在結束處理請求之前能處理的連接請求為 1000
        MaxRequestsPerChild 1000
        </IfModule>
        //設置使用 worker MPM 運行方式的參數(shù)
        <IfModule worker.c>
        …………
        </IfModule>
        //設置使用 perchild MPM 運行方式的參數(shù)
        <IfModule perchild.c>
        …………
        </IfModule>
        //設置服務器的監(jiān)聽端口
        Listen 80
        //將/etc/httpd/conf.d 目錄下的所有以 conf 結尾的配置文件包含進來
        Include conf.d/*.conf
        //動態(tài)加載模塊(DSO)
        LoadModule access_module modules/mod_access.so
        LoadModule auth_module modules/mod_auth.so
        ………………………………
        LoadModule proxy_connect_module modules/mod_proxy_connect.so
        //當使用內(nèi)置模塊 prefork.c 時動態(tài)加載 cgi_module
        <IfModule prefork.c>
        LoadModule cgi_module modules/mod_cgi.so
        </IfModule>
        //當使用內(nèi)置模塊 worker.c 時動態(tài)加載 cgid_module
        <IfModule worker.c>
        LoadModule cgid_module modules/mod_cgid.so
        </IfModule>
        //設置運行 Apache 服務器的用戶和組
        User apache
        Group apache
        //設置 Apache 服務器管理員的 E-mail 地址
        ServerAdmin root@localhost
        //關閉此選項,當 Apache 服務器需要指向本身的連接時使用
        //ServerName:Port 作為主機名,例如 www.:80
        //若打開此選項將使用 www. port 80 作為主機名
        UseCanonicalName Off
        //設置根文檔路徑
        DocumentRoot "/var/www/html"
        //設置 Apache 服務器根的訪問權限
        <Directory />
        //允許符號鏈接跟隨,訪問不在本目錄下的文件
        Options FollowSymLinks
        //禁止讀取.htaccess 配置文件的內(nèi)容
        AllowOverride None
        </Directory>
        //設置根文檔目錄的訪問權限
        <Directory "/var/www/html">
        //Indexes:當在目錄中找不到 DirectoryIndex 列表中指定的文件
        就生成當前目錄的文件列表
        //FollowSymLinks:允許符號鏈接跟隨,訪問不在本目錄下的文件
        Options Indexes FollowSymLinks
        //禁止讀取.htaccess 配置文件的內(nèi)容
        AllowOverride None
        //指定先執(zhí)行 Allow(允許)訪問規(guī)則,再執(zhí)行 Deny(拒絕)訪問規(guī)則
        Order allow,deny
        //設置 Allow(允許)訪問規(guī)則,允許所有連接
        Allow from all
        </Directory>
        //對 Apache 服務器根的訪問不生成目錄列表,同時指定錯誤輸出頁面
        <LocationMatch "^/$>
        Options -Indexes
          ErrorDocument 403 /error/noindex.html
          </LocationMatch>
          //不允許每用戶的服務器配置
          <IfModule mod_userdir.c>
        UserDir disable
        </IfModule>
        //當訪問服務器時,依次查找頁面 index.html、index.html.var
          DirectoryIndex index.html index.html.var
          //指定保護目錄配置文件的名稱
          AccessFileName .htaccess
          //拒絕訪問以.ht 開頭的文件,即保證.htaccess 不被訪問
          <Files ~ "^\.ht">
          Order allow,deny
          Deny from all
                </Files>
          //指定負責處理 MIME 對應格式的配置文件的存放位置
          TypesConfig /etc/mime.types
          //指定默認的 MIME 文件類型為純文本或 HTML 文件
          DefaultType text/plain
          //當 mod_mime_magic.c 模塊被加載時,指定 Magic 信息碼配置文件的存放位置
          <IfModule mod_mime_magic.c>
          MIMEMagicFile conf/magic
          </IfModule>
          //只記錄連接 Apache 服務器的 IP 地址,而不記錄主機名
          HostnameLookups Off
          //指定錯誤日志存放位置
          ErrorLog logs/error_log
          //指定記錄的錯誤信息的詳細等級為 warn 級別
          LogLevel warn
          //定義四種記錄日志的格式
          LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
          combined
          LogFormat "%h %l %u %t \"%r\" %>s %b" common
          LogFormat "%{Referer}i -> %U" referer
          LogFormat "%{User-agent}i" agent
          //指定訪問日志的記錄格式為 combined(混合型),并指定訪問日志存放位置
          CustomLog logs/access_log combined
          //設置 Apache 自己產(chǎn)生的頁面中使用 Apache 服務器版本的簽名
          ServerSignature On
          //設置內(nèi)容協(xié)商目錄的訪問別名
          Alias /icons/ "/var/www/icons/"
          //設置/var/www/icons 目錄的訪問權限
          <Directory "/var/www/icons">
          // MultiViews:使用內(nèi)容協(xié)商功能決定被發(fā)送的網(wǎng)頁的性質
          Options Indexes MultiViews
          AllowOverride None
          Order allow,deny
          Allow from all
          </Directory>
          //設置 Apche 手冊的訪問別名
          Alias /manual "/var/www/manual"
          //設置/var/www/manual 目錄的訪問權限
          <Directory "/var/www/manual">
          Options Indexes FollowSymLinks MultiViews
          AllowOverride None
          Order allow,deny
          Allow from all
          </Directory>
          //指定 DAV 加鎖數(shù)據(jù)庫文件的存放位置
          <IfModule mod_dav_fs.c>
          DAVLockDB /var/lib/dav/lockdb
          </IfModule>
          //設置 CGI 目錄的訪問別名
          ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
          //由于 Red Hat 中不使用 worker MPM 運行方式,所以不加載 mod_cgid.c 模塊
          <IfModule mod_cgid.c>
          Scriptsock       run/httpd.cgid
          </IfModule>
          //設置 CGI 目錄的訪問權限
          <Directory "/var/www/cgi-bin">
          AllowOverride None
          Options None
          Order allow,deny
          Allow from all
          </Directory>
          //設置自動生成目錄列表的顯示方式
          // FancyIndexing:對每種類型的文件前加上一個小圖標以示區(qū)別
          // VersionSort:對同一個軟件的多個版本進行排序
          // NameWidth=*:文件名子段自動適應當前目錄下最長文件名
          IndexOptions FancyIndexing VersionSort NameWidth=*
          //當使用 IndexOptions FancyIndexing 之后,配置下面的參數(shù),
          //用于告知服務器在遇到不同的文件類型或擴展名時采用 MIME 編碼格式
          //辨別文件類型并顯示相應的圖標
          AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
          AddIconByType (TXT,/icons/text.gif) text/*
          AddIconByType (IMG,/icons/image2.gif) image/*
          AddIconByType (SND,/icons/sound2.gif) audio/*
          AddIconByType (VID,/icons/movie.gif) video/*
          //當使用 IndexOptions FancyIndexing 之后,配置下面的參數(shù),
          //用于告知服務器在遇到不同的文件類型或擴展名時采用所指定的格式
          //并顯示所對應的圖標
          AddIcon /icons/binary.gif .bin .exe
          ………………
          AddIcon /icons/blank.gif ^^BLANKICON^^
          //當使用 IndexOptions FancyIndexing 之后,且無法識別文件類型時
          //顯示此處定義的圖標
          DefaultIcon /icons/unknown.gif
          //當服務器自動列出目錄列表時,在所生成的頁面之后顯示 README.html 的內(nèi)容
          ReadmeName README.html
          //當服務器自動列出目錄列表時,在所生成的頁面之前顯示 HEADER.html 的內(nèi)容
          HeaderName HEADER.html
          //設置在線瀏覽用戶可以實時解壓縮.Z .gz .tgz 類型的文件
          //并非所有瀏覽器都支持
          AddEncoding x-compress Z
          AddEncoding x-gzip gz tgz
          //設置網(wǎng)頁內(nèi)容的語言種類(瀏覽器要啟用內(nèi)容協(xié)商)
          //對中文網(wǎng)頁,此項無實際意義
          AddLanguage da .dk
          …………
          AddLanguage hr .hr
          //當啟用內(nèi)容協(xié)商時,設置語言的先后順序
          LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv tw
          // Prefer:當有多種語言可以匹配時,使用 LanguagePriority 列表的第 1 項
          // Fallback:當沒有語言可以匹配時,使用 LanguagePriority 列表的第 1 項
          ForceLanguagePriority Prefer Fallback
          //設置默認字符集
          AddDefaultCharset ISO-8859-1
          //設置各種字符集
          AddCharset ISO-8859-1 .iso8859-1 .latin1
          ……………………
          AddCharset shift_jis .sjis
          //添加新的 MIME 類型(避免用戶編輯/etc/mime.types)
          AddType application/x-tar .tgz
          //設置 Apache 對某些擴展名的處理方式
          AddHandler imap-file map
          AddHandler type-map var
          //使用過濾器執(zhí)行 SSI
          AddOutputFilter INCLUDES .shtml
          //設置錯誤頁面目錄的別名
          Alias /error/ "/var/www/error/"
          //設置/var/www/error 目錄的訪問權限
          <IfModule mod_negotiation.c>
          <IfModule mod_include.c>
            <Directory "/var/www/error">
            AllowOverride None
            Options IncludesNoExec
          AddOutputFilter Includes html
          AddHandler type-map var
          Order allow,deny
          Allow from all
          LanguagePriority en es de fr
          ForceLanguagePriority Prefer Fallback
          </Directory>
          //設置錯誤輸出頁面
          ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
          ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
          ………………
          ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
          </IfModule>
          </IfModule>
          //設置瀏覽器匹配
          BrowserMatch "Mozilla/2" nokeepalive
          BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
          BrowserMatch "RealPlayer 4\.0" force-response-1.0
          BrowserMatch "Java/1\.0" force-response-1.0
          BrowserMatch "JDK/1\.0" force-response-1.0
          BrowserMatch   "Microsoft Data   Access Internet Publishing   Provider"
          redirect-carefully
          BrowserMatch "^WebDrive" redirect-carefully
          #

      重點
          下面將 Red Hat 9 的 Apache 的默認重要配置信息匯總如下:
          配置文件:/etc/httpd/conf/httpd.conf
          服務器的根目錄: /etc/httpd
          根文檔目錄: /var/www/html
          訪問日志文件:/var/log/httpd/access_log
          錯誤日志文件:/var/log/httpd/error_log
          運行 Apache 的用戶:apache
          運行 Apache 的組: apache
          端口:80
          模塊存放路徑:/usr/lib/httpd/modules
          prefork MPM 運行方式的參數(shù):
          StartServers 8
          MinSpareServers 5
          MaxSpareServers 20
          MaxClients 150
          MaxRequestsPerChild 1000


      操作步驟 4       配置 Apache

          默認配置為用戶提供了一個良好的模板?;镜呐渲脦缀醪恍枰M行修改。但用戶應
          該考慮修改或添加如下的基本配置指令。
          1.KeepAlive
          將 KeepAlive 的值設為 On,以便提高訪問性能。
          2.MaxClients
          根據(jù)服務容量修改此值。
          3.ServerAdmin
          將 ServerAdmin 的值設為 Apache 服務器管理員的 E-mail 地址。
          4.ServerName
          首先刪除 ServerName 前的注釋符號“#”   ,然后設置服務器的 FQDN。
          5.DirectoryIndex
          在此指令后添加其他的默認主頁文件名,例如可以添加 index.htm 等。
          6.IndexOptions
          可以在此指令后添加 FoldersFirst 表示讓目錄列在前面(類似于資源管理器)   。

          分割配置任務

          1.使用 Include 指令
          可以使用 Include 指令將主配置文件進行分割。例如可以將所有與虛擬主機配置相關的
          配置單獨存成一個配置文件,然后在主配置文件中將其包含進來。
          在 Red Hat Linux 9 的默認配置中,就包含了一個 Include 指令 Include conf.d/*.conf,用
          于將/etc/httpd/conf.d 目錄下的所有以 conf 結尾的配置文件包含進來。
          2.使用.htaccess 文件
          可以使用.htaccess 文件改變主配置文件中的配置,但是它只能設置對目錄的訪問控制,
          這個目錄就是.htaccess 文件存放的目錄。與使用 Include 指令不同,.htaccess 文件中的配置
          可以覆蓋主配置文件中的配置,而使用 Include 指令只是將子配置文件簡單的包含進主配置
          文件之中。
          (1)何時使用.htaccess 文件。有如下兩種情況需要使用.htaccess 文件:
            Ø 在多個用戶之間分割配置。
            Ø 想在不重新啟動服務器的情況下改變服務器配置。
              在可能的情況下盡量避免使用.htaccess 文件,因為使用.htaccess 文件會降低
              服務器的運行性能。
        提示
          (2)要使用.htaccess 文件必須經(jīng)過兩個配置步驟:
            Ø 首先在主配置文件中啟用并控制對.htaccess 文件的使用。
            Ø 然后在需要覆蓋主配置文件的目錄下生成.htaccess 文件。
          3.啟用并控制使用.htaccess 文件
          (1)設置文件名稱。必須保證在主配置文件中包含如下的配置語句:
          AccessFileName .htaccess
          <Files ~ "^\.htaccess">
          Order allow,deny
          Deny from all
          </Files>
          (2)控制在.htaccess 文件中可以使用的指令組。要控制在.htaccess 文件中可以使用的
          指令組,需要在主配置文件中使用 AllowOverride 指令。

                      以下列出了可以在 AllowOverride表
          指令所使用的指令組。
         
                      AllowOverride 指令所使用的指令組
      指令組               可   用   指   令                   說 明
                                               
      AuthConfig   AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, 進行認證、授權以及安全的相
                AuthName, AuthType, AuthUserFile, Require                                               關指令

      FileInfo     DefaultType, ErrorDocument, ForceType,         控制文件處理方式的相關指令
                LanguagePriority,SetHandler, SetInputFilter,
                SetOutputFilter
                                                 
      Indexes   AddDescription, AddIcon, AddIconByEncoding,       控制目錄列表方式的相關指令
              AddIconByType, DefaultIcon, DirectoryIndex,
              FancyIndexing, HeaderName,IndexIgnore,
              IndexOptions, ReadmeName
             
      Limit     Allow,Deny,Order                       進行目錄訪問控制的相關指令

      Options   Options, XBitHack                   啟用不能在主配置文件中使用的各種選項
                     
      All     全部指令組                             可以使用以上所有指令

      None       禁止使用所有                         禁止處理.htaccess 文件
                                       
         
         

        4.生成.htaccess 文件
        當在主配置文件中配置了對.htaccess 文件的啟用和控制之后,接下來就可以在需要覆
        蓋主配置文件的目錄下生成.htaccess 文件。.htaccess 文件中可以使用的配置指令取決于主
        配置文件中 AllowOverride 指令的設置。
       
        下面舉一個簡單的例子說明.htaccess 文件的使用。
        //首先在文檔根目錄下生成一個 private 目錄,并創(chuàng)建測試文件
        # cd /var/www/html
        # mkdir private
        # cd private
        # touch test
        //修改配置前,在客戶瀏覽器查看結果,可以見到進入了列表模式目錄
        //修改主配置文件
        # vi /etc/httpd/conf/httpd.conf
        //添加如下配置語句
        <Directory "/var/www/html/private">
        AllowOverride Options
        </Directory>
        #
        //重新啟動 httpd
        # service httpd restart
        //在/var/www/html/private 目錄下生成.htaccess 文件
        # vi /var/www/html/private/.htaccess
        //添加如下配置語句
        Options –Indexes
        #
        //在客戶瀏覽器中查看結果, 可以看到是不允許訪問的頁面出現(xiàn)
        //通過查看配置結果,可以證明.htaccess 已經(jīng)生效。即對 private 目錄
        //的訪問不生成文件列表

        注意
          在上面的例子中,是先重新啟動了 Apache 服務器,然后才生成.htaccess 文
          件。也就是說,對.htaccess 文件的修改不用重新啟動服務器即可生效。

      配置每個用戶的 Web 站點
          1.配置步驟
          配置每個用戶的 Web 站點的意圖是使在安裝了 Apache 的本地計算機上,擁有用戶賬
          號的每個用戶都能夠架設自己單獨的 Web 站點。
          要配置每個用戶的 Web 站點,要經(jīng)過下面的配置步驟:
          Ø 修改主配置文件啟用每個用戶的 Web 站點配置。
          Ø 修改主配置文件為每個用戶的 Web 站點目錄配置訪問控制。

        下面舉例說明配置步驟。
        //修改主配置文件
        # vi /etc/httpd/conf/httpd.conf
        //修改如下部分的配置
        <IfModule mod_userdir.c>
        //基于安全考慮,禁止 root 用戶使用自己的個人站點
        UserDir disable root
        //配置對每個用戶 Web 站點目錄的設置
        UserDir public_html
        </IfModule>
        //設置每個用戶 Web 站點目錄的訪問權限,將下面配置行前的“#”去掉
        <Directory /home/*/public_html>
        AllowOverride FileInfo AuthConfig Limit
        Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
        <Limit GET POST OPTIONS>
          Order allow,deny
          Allow from all
        </Limit>
        <LimitExcept GET POST OPTIONS>
          Order deny,allow
          Deny from all
        </LimitExcept>
        </Directory>
        //重新啟動 httpd
        # service httpd restart

        下面說明每個用戶要創(chuàng)建自己的 Web 站點,需要執(zhí)行的步驟。以 osmond 用戶為例,
        想要創(chuàng)建自己的 Web 站點的每個用戶都要執(zhí)行下面的步驟。
       
        //查看當前用戶
        $ whoami
          osmond
        //回到自家目錄的根
        $ cd
        //創(chuàng)建目錄 public_html
        $ mkdir public_html
        //修改 osmond 目錄的權限
        $ cd ..
        $ chmod 711 osmond
        //創(chuàng)建 index.html
        $ cd ~/public_html/
        $ vi index.html
        //顯示 index.html 的內(nèi)容
        $ cat index.html
        Osmond‘s Web Site.
        //使用客戶瀏覽器訪問自己的主頁,是否已經(jīng)看到你的網(wǎng)頁啦。哈哈。。

      提示  
        (1)上例中直接用 vi 編輯了一個 index.html 文件用于測試。實際應該使用
          ftp 或 DAV 方式上傳文件。
        (2)使用瀏覽器訪問自己的主頁時,使用下面格式的 URL:
          http://IP 地址或 FQDN/~用戶名
          若主機的 IP 地址為 192.168.1.100,用戶名為 osmond,URL 為
          http://192.168.1.100/~osmond。

      1.訪問控制的配置指令
        Apache 使用下面的 3 個指令配置訪問控制:
          Ø Order:用于指定執(zhí)行允許訪問規(guī)則和執(zhí)行拒絕訪問規(guī)則的先后順序。
          Ø Deny:定義拒絕訪問列表。
          Ø Allow:定義允許訪問列表。
      (1)Order。Order 指令有兩種形式:
          Ø Order Allow,Deny:在執(zhí)行拒絕訪問規(guī)則之前先執(zhí)行允許訪問規(guī)則,默認情況下將
          會拒絕所有沒有明確被允許的客戶。
          Ø Order Deny,Allow:在執(zhí)行允許訪問規(guī)則之前先執(zhí)行拒絕訪問規(guī)則,默認情況下將
          會允許所有沒有明確被拒絕的客戶。
      注意     在書寫 Allow,Deny 和 Deny,Allow 時,中間不能添加空格字符。


        (2)Deny 和 Allow。Deny 和 Allow 指令的后面需要跟訪問列表,訪問列表可以使用
          如下的幾種形式:
        Ø All:表示所有客戶。
        Ø 域名:表示域內(nèi)的所有客戶,如 。
        Ø IP 地址:可以指定完整的 IP 地址或部分 IP 地址。
        Ø 網(wǎng)絡/子網(wǎng)掩碼:如 192.168.1.0/255.255.255.255.0 。
        Ø CIDR 規(guī)范:如 192.168.1.0/24。

      2.訪問控制配置舉例
        下面將以查看服務器配置信息為例講解訪問控制的使用。

        //修改主配置文件
        # vi /etc/httpd/conf/httpd.conf
        //將下面配置行前的“#”去掉
        <Location /server-info>
        //由 mod_info 模塊生成服務器配置信息
        SetHandler server-info
        //先執(zhí)行 deny 規(guī)則再執(zhí)行 allow 規(guī)則
        Order deny,allow
        //拒絕所有的客戶,只允許來自 192.168.1.77 的訪問
        Deny from all
        Allow from 192.168.1.77
        </Location>
        #
        //重新啟動 httpd
        # service httpd restart
        //下面在客戶瀏覽器上進行測試
        //在 IP 地址為 192.168.1.77 的主機上的結果可以看到一大堆的SERVER-INFO.]
        //在其他主機上的結果就是不允許訪問。
      提示   雖然上例中的訪問控制是在 Location 容器中設置的,但這種方法也
          適用于其他容器,如 Directory 容器和 Files 容器。

      3 論證和授權
       
          1.認證
      (1)兩種認證類型。
          在 RFC 2617 中定義了兩種認證方式,分別為:
          Ø 基本(Basic)認證
          Ø 摘要(Digest)認證
          摘要認證比基本認證更加安全,但遺憾的是目前并非所有的瀏覽器都支持摘要認證,
          所以大多數(shù)情況下用戶只使用基本認證。本節(jié)主要介紹基本認證。
      (2)認證的配置指令。
          所有的認證配置指令既可以出現(xiàn)在主配置文件的 Directory 容
          器中,也可以出現(xiàn)在./htaccess 文件中。以下列出了可用的認證配置指令。
       
        指     令         指   令   語   法             說 明
        AuthName           AuthName 領域名稱             定義受保護領域的名稱

        AuthType           AuthType Basic 或 Digest       定義使用的認證方式

        AuthGroupFile       AuthGroupFile 文件名           指定認證口令文件的位置

        AuthUserFile         AuthUserFile 文件名           指定認證組文件的位置

          2.授權
        當使用認證指令配置了認證之后,還需要為指定的用戶或組進行授權。為用戶或組進
        行授權的指令是 Require。Require 指令的三種使用格式如下
                  指令語法格式               說 明
              Require user 用戶名 [用戶名] ……   授權給指定的一個或多個用戶
              Require group 組名 [組名] ……     授權給指定的一個或多個組
              Require valid-user           授權給認證口令文件中的所有用戶
         
          3.管理認證口令文件和認證組文件
          本節(jié)講述基于文本文件的認證口令文件和認證組文件,關于基于數(shù)據(jù)庫的認證口令文
          件和認證組文件的相關內(nèi)容請參考 Apache 手冊。
      (1)管理認證口令文件
            1)創(chuàng)建新的認證口令文件
          可以使用如下命令,在添加一個認證用戶的同時創(chuàng)建認證口令文件:
          # htpasswd –c 認證口令文件名 用戶名
            2)修改認證口令文件
          可以使用如下命令,向現(xiàn)存的口令文件中添加用戶或修改已存在的用戶的口令:
          # htpasswd 認證口令文件名 用戶名
            3)認證口令文件的格式
          與系統(tǒng)中的/etc/shadow 文件類似,認證口令文件中每一行包含一個用戶的用戶名和加
          密的口令:
          用戶名:加密的口令
      注意 (1)基于安全因素的考慮,認證口令文件和下面講述的認證組文件不應該
          與 Web 文檔存在于相同的目錄下,   建議存放在/var/www/目錄或其子目錄下,
          也可以存放在配置目錄/etc/httpd/目錄或其子目錄下。
          (2)htpasswd 沒有提供刪除用戶的選項,要想刪除用戶,可以直接使用文
          本編輯器對認證口令文件進行編輯,刪除指定用戶的行即可。
      (2)管理認證組文件。Apache 沒有提供創(chuàng)建認證組文件的命令,它只是一個文本文
          件,用戶可以使用任何的文本編輯器創(chuàng)建并修改此文件。該文件中每一行的格式如下:
          組名:用戶名 用戶名 ……
      注意   在認證組文件中指定的用戶名,必須先添加到認證口令文件中。

      4、論證和授權配置舉例
        1.在主配置文件中配置認證和授權
        下面舉例說明具體的配置步驟。
        //修改主配置文件
        # vi /etc/httpd/conf/httpd.conf
        //添加如下的配置行
        <Directory "/var/www/html/private">
          //不使用.htaccess 文件
          AllowOverride None
          //指定使用基本認證方式
          AuthType Basic
          //指定認證領域名稱
          AuthName "jamond"
          //指定認證口令文件的存放位置
          AuthUserFile /var/www/passwd/jamond
          //授權給認證口令文件中的所有用戶
          require valid-user
        </Directory>
          #
          //創(chuàng)建認證口令文件,并添加兩個用戶
          # mkdir /var/www/passwd
          # cd /var/www/passwd
          # htpasswd -c jamond osmond
            New password:
            Re-type new password:
            Adding password for user osmond
          # htpasswd jamond jason
            New password:
            Re-type new password:
            Adding password for user jason
          #
          //將認證口令文件的屬主改為 apache
          # chown apache.apache jamond
          #
          //重新啟動 httpd
          # service httpd restart
          #
        //在客戶端使用瀏覽器檢測配置,結果彈出一個要你輸入用戶名和密碼的對話框,當核對正確后就會
          看到一個列表式的網(wǎng)頁。。。
      注意   由于 Apache 的子進程以 apache 用戶運行,所以認證口令文件和認證組文件
          的屬主應該設為 apache。只有這樣才能讓 apache 子進程在認證過程中讀取
          這兩個文件的內(nèi)容。
       
          2.在.htaccess 文件中配置認證和授權
            下面舉例說明具體的配置步驟。
          //修改主配置文件
        # vi /etc/httpd/conf/httpd.conf
        //將/var/www/html/private 目錄的訪問權限設為
        <Directory "/var/www/html/private">
          //允許在.htaccess 文件中使用認證和授權指令
          AllowOverride AuthConfig
        </Directory>
        #
        //重新啟動 httpd
        # service httpd restart
        //繼續(xù)使用以上操作步驟生成的認證口令文件
        //接下來,在/var/www/html/private 目錄下生成.htaccess 文件
        # vi .htaccess
        //添加如下內(nèi)容
        AuthType Basic
        AuthName "jamond"
        AuthUserFile /var/www/passwd/jamond
        //授權給用戶 osmond 和 jason
        require user osmond Jason
        #
        //在客戶端使用瀏覽器檢測配置,結果與上面說的一樣
        通過以上例子可知使用兩種方法都可以使指定的用戶訪問授權區(qū),它們具有
        相同的效果。具體使用哪種方法將由管理員做出權衡。

      5、訪問控制、認證和授權的綜合應用

          1.對訪問控制和認證授權進行控制
          在對一個容器(Directory 或 Files 或 Location)同時配置了訪問控制和認證授權之后,
          這兩類指令是否都會起作用,將由一個指令進行控制,這個指令是 Satisfy。Satisfy 指令
          只有在對一個容器同時設置了訪問控制和認證授權后才起作用。Satisfy 指令有兩種可能的
        取值:
          Ø Satisfy all:訪問控制和認證授權兩類指令均起作用(默認值)     。
          Ø Satisfy any:只要一類指令滿足條件即可以訪問。
        下面舉例說明 Satisfy 指令的使用。
          2.配置指定的用戶在指定的網(wǎng)段上訪問資源
          下面將以查看服務器運行狀態(tài)信息為例說明 Satisfy all 的使用。
          //修改主配置文件
          # vi /etc/httpd/conf/httpd.conf
          //添加如下的配置行
        <Location /server-status>
          SetHandler server-status
          Order deny,allow
          Deny from all
        //允許 192.168.1 網(wǎng)段內(nèi)主機的訪問
          Allow from 192.168.1
          //配置認證授權
          AuthType Basic
          AuthName "Admin"
          AuthUserFile /var/www/passwd/jamond
          AuthGroupFile /var/www/passwd/admingrp
          require group admin
          Satisfy all
        </Location>
        #
        //創(chuàng)建認證組文件并更改屬主
        # vi /var/www/passwd/admingrp
        //添加下面的行
        admin: osmond jason
        # chown apache.apache /var/www/passwd/admingrp
        #
        //重新啟動 httpd
        # service httpd restart
        #
        //在客戶端使用瀏覽器檢測配置, 192.168.1 網(wǎng)段上的主機的訪問結果輸入用戶名和密碼就可以訪問
        //當通過用戶認證之后即可看到服務器運行狀態(tài)信息
        //而非 192.168.1 網(wǎng)段的主機以及沒有 Admin 組身份的人都不能訪問
         
        3.允許網(wǎng)段內(nèi)用戶無條件訪問而其他用戶授權訪問
          只要將操作步驟 7.10 中的 Satisfy all 改為 Satisfy any 就可以實現(xiàn) 192.168.1 網(wǎng)段內(nèi)的用
          戶無需認證即可訪問,而在外網(wǎng)上可以允許 admin 組內(nèi)的用戶經(jīng)過認證后訪問。

      6、WebDAV
          1.WebDAV 簡介
        DAV 是分布式授權和版本控制的縮寫,而 WebDAV 是基于 Web 的分布式授權和版本
      控制。傳統(tǒng)情況下,用戶使用 FTP 或 NFS 對站點內(nèi)容進行上傳或更新。但是有許多人士認
      為 FTP 和 NFS 是不安全的協(xié)議,盡量不要在運行 Web 服務器的計算機上運行 FTP 和 NFS
      服務器。然而不運行這兩種服務器,用戶就無法對自己的站點內(nèi)容進行維護,WebDAV 提
      供了一種新的基于 HTTP 協(xié)議的解決方案。WebDAV 的官方網(wǎng)站是 http://www.。
      當對 Apache 配置了對 WebDAV 支持以后,用戶就可以在支持 WebDAV 的客戶端上對
      站點內(nèi)容進行上傳和維護。
          2.限制應用認證授權的時機
        在介紹下面的內(nèi)容之前有必要先了解一下 HTTP 的請求方法。當 HTTP 客戶端與服務
      器建立連接后就要發(fā)送請求,請求可以分為 3 部分:方法、 請求資源和 HTTP 版本號。   HTTP
      請求方法通常是 GET、POST 和 HEAD,但 HTTP 規(guī)范(RPC 2616)中還定義了許多 HTTP
      請求方法。 這些方法包括:   GET、 POST、PUT、DELETE、CONNECT、OPTIONS、TRACE、
      PATCH、PROPFIND、PROPPATCH、MKCOL、COPY、MOVE、LOCK 和 UNLOCK。
      要告知 Apache 為指定 HTTP 的請求方法進行配置,可以使用<Limit>和<LimitExcept>
      指令。 例如下面的指令片斷可以允許任何人瀏覽網(wǎng)站,但是只允許一組特殊的用戶應答 CGI
      程序。
            AuthType Basic
            AuthName "Example"
            AuthUserFile /var/www/passwd/jamond
            AuthGroupFile /var/www/passwd/admingrp
          <Limit POST>
            require group admin
          </Limit>
          在對 Apache 配置 WebDAV 時也要使用類似的配置,從而讓任何人都能瀏覽網(wǎng)站,指
          定的用戶才能對網(wǎng)站進行上傳和更新。
          3.配置 WebDAV
          在 Apache 2.0 中默認包含了支持 WebDAV 的模塊 mod_dav。下面講述配置過程。
            //修改主配置文件
            # vi /etc/httpd/conf/httpd.conf
            //將文檔根目錄的訪問控制改為
          <Directory "/var/www/html">
          Options Indexes FollowSymLinks
          AllowOverride None
          //啟用 WebDAV
          Dav On
          //配置認證指令
          AuthType Basic
          AuthName "Admin"
          AuthUserFile /var/www/passwd/jamond
          AuthGroupFile /var/www/passwd/admingrp
        //配置條件授權,即對非瀏覽的 HTTP 請求方法進行認證授權
        <LimitExcept GET OPTIONS>
          require group admin
        </LimitExcept>
          </Directory>
        #
        //重新啟動 httpd
        # service httpd restart
        #
        //將服務器根文檔目錄的屬主設為 apache
        # chown -R apache.apache /var/www/html/
        #
      注意   必須將 WebDAV 所管理的目錄的屬主設為 apache,以便以 apache 用戶運行
            的 Apache 子進程能對目錄內(nèi)容進行更新。

      7、組織衙管理站點內(nèi)容的方法

          Web 服務器是更新量最大的服務器之一,隨著時間的推移站點內(nèi)容將越來越多。在維
        護方面會帶來兩方面的問題:
      (1)如何在文檔根目錄空間不足的情況下繼續(xù)添加站點內(nèi)容。
      (2)如何在文件移動位置之后使得用戶仍然能夠訪問。
      對于第 1 個問題有 3 種解決方法:
      Ø 掛裝新的磁盤分區(qū)到文檔目錄(可以是本地磁盤分區(qū)或遠程 NFS 分區(qū))
      Ø 在文檔目錄下使用符號鏈接使文檔目錄之外的內(nèi)容被訪問。
      Ø 使用別名機制使文檔目錄之外的內(nèi)容被訪問。
      對于第 2 個問題的解決方法是使用頁面重定向。

      8、符號鏈接和別名

        關于掛裝磁盤分區(qū)的方法屬于系統(tǒng)管理的范疇,本書不做過多敘述。下面舉例講解符
        號鏈接和別名的使用。
      1.符號鏈接
      在 Apache 的默認配置中已經(jīng)包含了符號鏈接的指令:
        <Directory />
          Options FollowSymLinks
        </Directory>
        <Directory "/var/www/html">
          Options Indexes FollowSymLinks
        </Directory>
      所以只要在根文檔目錄下使用 ln –s 命令創(chuàng)建符號鏈接即可。
        # cd /var/www/html
        # ln -s /usr/share/doc doc
        //可以使用客戶端瀏覽器進行測試 http://192.168.1.100/doc/
        符號鏈接對站點內(nèi)容進行擴展
       
        2.別名
          使用別名是另一種將根文檔目錄以外的內(nèi)容加入站點的方法。在 Apache 的默認配置
        中,由于 error 目錄和 manual 目錄都在文檔根目錄 html 之外,所以設置了這兩個目錄的別
        名訪問,同時還使用 Directory 容器配置了對別名目錄的訪問權限。下面再舉一個簡單的使
        用別名的例子。
          //編輯主配置文件
        # vi /etc/httpd/conf/httpd.conf
        //添加如下的配置
        Alias /ftp /var/ftp/pub
      <Directory "/var/ftp/pub">
        AllowOverride None
        Options Indexes
        Order allow,deny
        Allow from all
      </Directory>
      #
        //重新啟動 apache 之后可以使用客戶端瀏覽器進行測試

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多