web服務_apache配置(2)v1.0

 

httpd-2.2的基礎配置

      

       /etc/httpd:ServerRoot

              conf/httpd.conf、conf.d/*.conf:配置文件

              logs:日誌文件

              modules:模塊文件

             

       主配置文件:/etc/httpd/conf/httpd.conf

              directive value

                     directive:不區分字符大小寫;例如:ServerRoot;

                     value:除了文件路徑這外,大多數不區分字符大小寫;

                           

              ### Section 1: Global Environment                     全局配置段

              ### Section 2: 'Main' server configuration              主服務配置選項

              ### Section 3: Virtual Hosts                                   虛擬主機配置段

一般而言只用一個主服務配置或多個虛擬主機 (互斥選項 主服務和虛擬服務不能同時生效)

                    

              修改後生效:

                     Reload                     service httpd reload (CentOS 6)

                     restart:通常僅修改了監聽的地址和端口;

***********************************

]# httpd -t               語法檢查

***********************************             

       1、修改監聽的地址端口;

              Listen [IP:]PORT

                     (1) 可定義多次;

                            Listen 80

                            Listen 8080

                     (2) 省略IP,表示0.0.0.0; 本機配置的所有地址

                           

       2、持久連接

              persistent connection:tcp連接建立後,資源獲取完成不會斷開連接,而是繼續等待請求其它資源;

                     如何斷開?

                            數量限制

                            時間限制

                           

                     相關指令:

                            KeepAlive On|Off              是否開啓持久鏈接功能 默認off

                            MaxKeepAliveRequests 100              一次鏈接最多能請求多少個資源

                            KeepAliveTimeout 15                     一次聯建最多存活多少秒

                                  

              請求測試:

                     ]$ telnet SERVER_IP PORT              root無法用terlnet

                     GET /test1.html HTTP/1.1            請求資源方法 資源url  及指定協議版本 http

                     Host: SERVER_IP                            主機ip地址

              相應報文首部:      

                     HTTP/1.1 200 OK                            相應碼 200

                     Date: Tue, 14 Jun 2016 06:04:36 GMT       時間

                     Server: Apache/2.2.15 (CentOS)              服務器端程序

                     Last-Modified: Tue, 14 Jun 2016 03:34:43 GMT 標記請求資源最後修改的時間

                     ETag: "60102-10-53534af955806"      

                     Accept-Ranges: bytes

                     Content-Length: 16              響應報文長度

                     Connection: close             

                     Content-Type: text/html; charset=UTF-8              資源類型和字符集

                           

                            test1.html page                     (相應body)

                            Connection closed by foreign host.       (非持久鏈接 相應後既關閉連接)

                           

       3、MPM 定義httpd進程基於哪種某型相應用戶請求

              multipath processing module:多路處理模塊;

                    

                     httpd-2.2的MPM機制不支持DSO機制,event爲測試;

                            httpd:prefork

                            httpd.worker: worker

                            httpd.event: event

                     修改啓動的模塊:       restart生效

                            /etc/sysconfig/httpd

                            HTTPD=/usr/sbin/httpd|httpd.worker|httpd.event

                                  

                     查看httpd程序的模塊列表:

                            查看靜態編譯的模塊:

                                   httpd -l

                            查看編譯的所有模塊:

                                   httpd -M

                                          *****************************************

當使用profork模型時,主進程會預先生成幾個空閒的子進程等待相應用戶請求

                            MPM配置:

                                   prefork的配置             

                                          <IfModule prefork.c>

                                          StartServers       8       預先生成的子進程數量

                                          MinSpareServers    5       最小空閒子進程

                                          MaxSpareServers   20       最大空閒子進程

                                          ServerLimit      256       相應用戶請求的最大服務器進程數量

                                          MaxClients       256       最大客戶端數量

                                          MaxRequestsPerChild  4000             

                                          </IfModule>             

                           

                                   worker的配置: 三級結構

                                          <IfModule worker.c>

                                          StartServers         4              啓動子進程數量

                                          MaxClients         300       最大併發連接數(線程)

                                          MinSpareThreads     25       最少空閒線程數

                                          MaxSpareThreads     75       最大空閒線程數

                                          ThreadsPerChild     25  每一個子進程最大啓動多少個線程

                                          MaxRequestsPerChild  0每一個字進程最多能接受多少個請求(基於線程模型無法控制)

                                          </IfModule>                                          80, 500ms, 256

                            512*86400/80=55W PV       每個相應在500ms內完成 最大併發爲256 一秒鐘能相應512個 平均每天86400 除以每個頁面的資源數量 80 得每天能相應的頁面數量 (不代表高峯數據且不考慮帶寬 實際意義不大)

                                   Page View

                            UV: User View 有效用戶

                                   *****************************************

       4、DSO 動態模塊裝載

              LoadModule指令

                     LoadModule  Mod_Name  modules/Module_File.so

                           

              相對路徑,是相對於ServerRoot指令所定義的路徑而言;

                    

       5、       ‘Main' Server 主web服務配置段

      通常來講,這兩個配置段沒有的指令會從主配置段繼承配置,主服務器配置和虛擬服務器配置不可同時生效:

    (1)'Main'Server配置段(在單臺服務器上存在單個站點提供服務)

        定義服務器和主機必不可少的: 

          ServerName FQDN:PORT   主服務器在主配置段裏定義也可以(試驗中在本機定義後,還要編輯/etc/hosts添加ip地址和FQDN對應關係才能在本機瀏覽器打開)

           DocumentRoot (路徑映射)

 

 6.站點資源訪問控制 (可以在主配置文件或虛擬主機中生效)

    (1)基於文件系統 (2.2默認都可以訪問 2.4默認不能訪問)

    <Directory"/PATH/TO/SOME_DIR"> (針對文件夾做操作,配置內容只對該文件夾有效)

    ...

    </Directory>

    <File""> ...</File>              (針對文件,只對容器內生效)

     <FileMatch "PATTERN"> ...</FileMatch>              (針對被正則匹配的文件)

    (2)基於url路徑              

     <Location "/PATH/TO/SOME_URL">...</Location>(對url訪問控制) 

     <LocationMatch "PATTERN">...</LocationMatch> (url的正則表達式)    

   目錄中的常用選項:

        

      [1] Options:用於定義資源的展示方式;後跟以空白字符分隔的“選項”列表; 

       Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews None All

        Indexes:允許索引;

        FollowSymLinks:允許跟蹤符號鏈接; (允許指定的文件或路徑是以軟連接的形式存在,風險很大)

        SymLinksifOwnerMatch          (原理同上,但文件或目錄屬主(運行httpd的用戶)必須是符合要求,相比followsyslinks風險較小)

       ExecCGI:允許執行CGI腳本;      (早期CGI可以有超級superID權限,除非網頁用到此功能,否則儘量不開啓)

       Includes:包含            略

        如果一個站點沒有主頁又沒有允許Indexes則顯示403,但如果有其他url還是可以訪問的.

    

      [2] AllowOverride [none|all|Fileinfo|authconfig|limit](用來控制哪些指令可以放在.htaccess中)

         httpd允許在網頁文檔的各目錄下使用.htaccess文件實現單目錄資源的訪問控制;表示哪此指令可以存放於.htaccess文件中;

         比如/data/web/目錄下有.htaccess則編輯此文件則可實現訪問控制,如果使用服務器性能急劇下降(必須搜索到此文件.當前目錄沒有則搜索上級目錄)

    

      [3]order和llow/deny from (控制誰能在當前服務器獲得資源) 

           基於IP地址的訪問控制;

            order 用於定義allow和deny的生效次序;

            allow from all/IP/NETWORK/FQDN

            deny from  all/IP/NETWORK/FQDN 

             來源地址格式:

             IP

             NetAddr:格式;

                    172.16;

                    172.16.0.0;

                    172.16.0.0/16;

                    172.16.0.0/255.255.0.0;

             FQDN

              DAMAIN

    order * , *(誰在後誰是默認法則)

        order deny,allow;deny是默認法則,沒有說明allow的都是不允許的(安全)

        order allow, deny (如果沒有deny的,都是allow(默認))-->>來源請求遵循最佳匹配法則機制;

1

2

3

        oeder allow,deny          #deny爲默認法則

        deny from 172.16.100.67       #不允許這個地址

        allow from 172.16         #允許這個網段

    deny和allow的次序是沒有區別的(非order第一行),最優匹配法則:當一個主機訪問時,看哪一條能最小匹配,哪一個就優先生效(172.16.100.67最小匹配deny,所以deny生效)

 

1

2

3

4

        oeder allow,deny          #deny爲默認法則

        deny from 172.16.100.67      #不允許這個地址

        allow from 172.16         #允許這個網段

        deny from all                      #172.16.1.1最小匹配allow from 172.16s所以可以訪問

  7.定義站點主頁面

     DirectoryIndex index.html index.html.var 

        可以多個值 自作而有搜索,如果沒有查看是否options indexes返回索引列表,如果沒有則返回403

8.定義路徑別名:

      Alias  /URL/  "/PATH/TO/SOME_DIR/" (URL只是個定義.並不一定非要是目錄)

     例:  DocumentRoot "/data/web"

     當訪問http://www.zxtest.com/images/logo.jpg  <-- /data/web/images/logo.jpg

       alias  /images /webdata/pictures/

http://www.zxtest.com/images/logo.jpg <-- /webdata/pictures/logo.jpg

       9、日誌設定

                    

              錯誤日誌:

                     ErrorLog logs/error_log  相對於/etc/logs (文件爲超級連接,真正位置看超級連接的位置)

                     LogLevel warn  日誌等級

                                  

              訪問日誌:

                     LogFormat:定義日誌信息格式;

                     CustomLog:指明日誌文件路徑及日誌格式;

                                  

                            格式:

                                   %h       Remote host       遠程主機

                                   %l       Remote logname (from identd, if supplied). 遠程登錄名

                                   %u       Remote user (from auth; may be bogus if return status (%s) is 401) 用戶名

                                   %t       Time the request was received (standard english format) 收到請求的時間

                                   %r       First line of request 請求報文的首行

                                   %s       Status. For requests that got internally redirected, this is the status of the *original* request --- %>s for the last.                     相應狀態碼?

                                   %b       Size of response in bytes, excluding HTTP headers. 主體部分大小(不包含首部)

                                   %{Foobar}i       The contents of Foobar: header line(s) in the request sent to the server.

                                  

                                   LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined(日誌名稱)

                                   特殊顏色爲取其某個報文首部的指定字段的值的


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