中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

httpd 配置

發布時間:2020-07-03 09:04:27 來源:網絡 閱讀:399 作者:彥博 欄目:網絡安全


CentOS 6:httpd-2.2
            程序環境:
                配置文件:
                    /etc/httpd/conf/httpd.conf
                    /etc/httpd/conf.d/*.conf
                服務腳本:
                    /etc/rc.d/init.d/httpd
                    腳本配置文件:/etc/sysconfig/httpd
                主程序文件:
                    /usr/sbin/httpd
                    /usr/sbin/httpd.event
                    /usr/sbin/httpd.worker
                日志文件:
                    /var/log/httpd:
                        access_log:訪問日志
                        error_log:錯誤日志
                站點文檔:
                    /var/www/html(頁面文件)
                模塊文件路徑:
                    /usr/lib64/httpd/modules
                    
                服務控制和啟動:
                    chkconfig  httpd  on|off
                    service  {start|stop|restart|status|configtest|reload}  httpd


常用配置:
         
   1、修改監聽的IP和PORT

        # vim /etc/httpd/conf/httpd.conf

httpd 配置                           (1) 省略IP表示為0.0.0.0;
                    (2) Listen指令可重復出現多次;
                        Listen  80
                        Listen  8080
                    (3) 修改監聽socket,重啟服務進程方可生效;
               注意:改配置文件需要重啟服務  service httpd restart           

                netstat -tnlp(查看當前啟動的服務所用的端口)   

         2、持久連續
      tcp連續建立后,每個資源獲取完成后不全斷開連接,而是繼續等待其它資源請求的進行;
     副作用:對并發訪問量較大的服務器,長連接機制會使得后續某些請求無法得到正常 響應;
      折衷:使用較短的持久連接時長,以及較少的請求數量;                       
                    KeepAlive  On|Off(是否開啟持久連續)
                    KeepAliveTimeout  15(時間限制)
                    MaxKeepAliveRequests  100(數量限制

   # vim /etc/httpd/conf/httpd.conf

httpd 配置

      重啟服務  service httpd restart 


    3、MPM              
                httpd-2.2不支持同時編譯多個MPM模塊,所以只能編譯選定要使用的那個;

                CentOS 6的rpm包為此專門提供了三個應用程序文件:

                httpd(prefork),       httpd.worker,        httpd.event

             查看現在使用的是哪個程序文件的方法啟動了多少進程:
                   #    ps  aux  | grep httpd

                第一行為主控進程(管理進程的創建和銷毀)

             默認使用的為/usr/sbin/httpd,其為prefork的MPM模塊 ;
                    查看httpd程序的模塊列表:
                        查看靜態編譯的模塊:
                            # httpd  -l
                        查看靜態編譯及動態編譯的模塊:
                            # httpd  -M

              更換使用httpd程序,以支持其它MPM機制;
                  #   vim /etc/sysconfig/httpd
                        HTTPD=/usr/sbin/httpd.{worker,event}
                        
                注意:重啟服務進程方可生效

                         # service httpd restart 

MPM配置:  
                # vim /etc/httpd/conf/httpd.conf
                    prefork的配置        
                        <IfModule prefork.c>(如果prefork存在)
                        StartServers       8(啟動多少空閑進程)
                        MinSpareServers    5(最少空閑進程數)
                        MaxSpareServers   20(最大空閑進程)
                        ServerLimit      256(允許MaxClients最大啟動的進程數量)
                        MaxClients       256(最大允許啟動的進程數量)
                        MaxRequestsPerChild  4000(每個進程最多可處理多少請求,處理了4000個就要銷毀此進程)
                        </IfModule>        
                
                    worker的配置:
                        <IfModule worker.c>
                        StartServers         4(啟動多少空閑進程)
                        MaxClients         300(最大允許啟動的進程數量)
                        MinSpareThreads     25(最少空閑進程數)
                        MaxSpareThreads     75(最多空閑進程數)
                        ThreadsPerChild     25(每個主進程最大可生成多少線程)
                        MaxRequestsPerChild  0(每個進程可處理無上限的請求)
                        </IfModule>                        
                
                PV,UV
                    PV:Page View(頁面瀏覽量)
                    UV: User View(用戶瀏覽量)

4、DSO(動態共享模塊)
                配置指定實現模塊加載
                    LoadModule  <mod_name>  <mod_path>(模塊文件路徑)
                    
                    模塊文件路徑可使用相對路徑:
                        相對于ServerRoot(默認/etc/httpd)


5、  定義訪問主文檔頁面路徑

    # vim /etc/httpd/conf/httpd.conf

         DocumentRoot  " "

文檔路徑映射:
                    DoucmentRoot指向的路徑為URL路徑的起始位置
                        其相當于站點URL的根路徑;

注意:重啟服務進程方可生效

                         # service httpd restart 


6、站點訪問控制常見機制

               # vim /etc/httpd/conf/httpd.conf           
                可基于兩種機制指明對哪些資源進行何種訪問控制
                
                    文件系統路徑:
                        <Directory  "">
                        ...
                        </Directory>
                        
                        <File  "">
                        ...
                        </File>
                        
                        <FileMatch  "PATTERN">
                        ...
                        </FileMatch>
                    URL路徑:
                        <Location  "">
                        ...
                        </Location>
                        
                        <LocationMatch "">
                        ...
                        </LocationMatch>
                        
                <Directory>中“基于源地址”實現訪問控制:
                    (1) Options
                        后跟1個或多個以空白字符分隔的“選項”列表;
                            Indexes:指明的URL路徑下不存在與定義的主頁面資源相符的資源文件時,返回索引列表給用戶;(建議關掉)
                            FollowSymLinks:允許跟蹤符號鏈接文件所指向的源文件(建議關掉);
                            None:一個也沒有
                            All:全部
                        建議改為:Options  None    

                    (2)  AllowOverride(允許覆蓋)
                        與訪問控制相關的哪些指令可以放在.htaccess文件(每個目錄下都可以有一個)中;
                            All: 全部
                            None:一個也沒有
                        建議改為:AllowOverride  None        
                    (3) order和allow、deny拒絕
                        order:定義生效次序;寫在后面的表示默認法則;
                        
                        Allow from來源地址, Deny from來源地址
                            來源地址:
                                IP
                                NetAddr:(網絡地址)
                                    172.16
                                    172.16.0.0
                                    172.16.0.0/16
                                    172.16.0.0/255.255.0.0
                        1、e.g.設置為僅允許172.16網段的主機訪問:Allow from 172.16    
                        2、e.g.Deny from 172.16.100.88
                            Allow from 172.16 

                      (僅允許172.16網段的主機訪問,但 172.16.100.88這臺不能訪問)

7、定義站點主頁面:

         # vim /etc/httpd/conf/httpd.conf

                DirectoryIndex  index.html  index.html.var(先找index.html沒有找到,就找index.html.var)

8、定義路徑別名

  # vim /etc/httpd/conf/httpd.conf

               格式:
                    Alias  /URL/  "/PATH/TO/SOMEDIR/"
            
                DocumentRoot "/www/htdocs"
                    http://www.magedu.com/download/bash-4.4.2-3.el6.x86_64.rpm
                        /www/htdocs/download/bash-4.4.2-3.el6.x86_64.rpm
                        
                Alias  /download/  "/rpms/pub/"
                    http://www.magedu.com/download/bash-4.4.2-3.el6.x86_64.rpm 

                        /rpms/pub/bash-4.4.2-3.el6.x86_64.rpm
                        
                    http://www.magedu.com/p_w_picpaths/logo.png
                        /www/htdocs/p_w_picpaths/logo.png
                    
            9、設定默認字符集(為防止“語言”不通,響應的頁面看不懂。)
                AddDefaultCharset  UTF-8
                
                中文字符集:GBK, GB2312, GB18030


           10、日志設定
                日志類型:訪問日志 和 錯誤日志
                
                錯誤日志


                    ErrorLog  logs/error_log


                    LogLevel  warn(警告)
                    錯誤級別: debug(所有錯誤的都記錄下來), info(比debug更高級), notice(引起關注), warn(警告), error(發生錯誤), crit(級別很嚴重), alert(紅色警戒), emerg(緊急事務).
                        
                訪問日志:查看訪問日志:#tail /var/log/httpd/access_log
                    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
                    CustomLog  logs/access_log  combined
                    
                    LogFormat format strings:(LogFormat格式符意思)
                        http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats
                    
                        %h:客戶端IP地址;
                        %l:客戶端用戶名, 通常為一個減號(“-”);
                        %u:客戶端用戶 (from auth; may be bogus if return status (%s) is 401);非為登錄訪問時,其為一個減號;
                        %t:服務器收到請求時的時間;
                        %r:First line of request,即表示請求報文的首行;記錄了此次請求的“方法”、“URL”以及協議版本;
                        %>s:響應狀態碼;
                        %b:響應報文的大小,單位是字節;不包括響應報文的http首部;
                        %{Referer}i:請求報文中首部“referer”的值;referer即從哪個頁面中的超鏈接跳轉至當前頁面的;
                        %{User-Agent}i:請求報文中首部“User-Agent”的值;即發出請求的應用程序;


           11、基于用戶的訪問控制

           認證方式有兩種:
                        basic:明文
                        digest:消息摘要認證

       此處使用  basic認證。

  # vim /etc/httpd/conf/httpd.conf


httpd 配置

basic認證配置示例:
                     定義安全域
                        <Directory "">(定義哪個頁面資源訪問時需要認證)
                            Options None
                            AllowOverride None
                            AuthType Basic(認證類型)
                            AuthName "String“(認證提示符)
                            AuthUserFile  "/PATH/TO/HTTPD_USER_PASSWD_FILE"(認證時的賬號密碼所在的路徑)
                            Require  user  username1  username2 ...(指明可登陸的用戶;允許賬號文件中的所有用戶登錄訪問:Require   valid-user)
                        </Directory>


       創建賬號密碼文件AuthUserFile :

                    htpasswd  [options]   /PATH/TO/HTTPD_PASSWD_FILE  username
                                -c:自動創建此處指定的文件,因此,僅應該在此文件不存在時使用;
                                -m:md5格式加密
                                -s: sha格式加密
                                -D:刪除指定用戶
                        e.g. htpasswd -c -m /etc/httpd/conf/.htpasswd  tianxudong
                          注意:首次添加用戶時使用-c,之后都不能使用,否則會覆蓋里面原有的用戶信息。


基于組賬號進行認證;

# vim /etc/httpd/conf/httpd.conf

httpd 配置

                 相比定義用戶訪問控制,多加一個組認證的文件。  
                                AuthGroupFile "/PATH/TO/HTTPD_GROUP_FILE"
                                Require  group  grpname1  grpname2 ..  

                                            
     創建用戶賬號和組賬號文件;
         #vim /etc/httpd/conf/.htgroup

                     mygrp: tianxidong   

     

         組文件:每一行定義一個組
                                GRP_NAME: username1  username2  ...
                             

     12、虛擬主機      
                有三種實現方案:
                    基于ip:
                        為每個虛擬主機準備至少一個ip地址;
                    基于port:
                        為每個虛擬主機使用至少一個獨立的port;
                    基于FQDN:
                        為每個虛擬主機使用至少一個FQDN;

           注意:一般虛擬機不要與中心主機混用;因此,要使用虛擬主機,得先禁用'main'主機;
         禁用方法:注釋中心主機的DocumentRoot指令即可;

          虛擬主機的配置方法:
                    <VirtualHost  IP:PORT>(虛擬主機所監聽的端口地址)
                        ServerName FQDN(若沒有用name標示,則無需寫FQDN)
                        DocumentRoot  ""(虛擬主機的站點文件路徑)
                    </VirtualHost>
                    
                    其它可用指令:
                        ServerAlias:虛擬主機的別名;可多次使用;
                        ErrorLog:(此虛擬主機專用的錯誤日志)
                        CustomLog:(此虛擬主機專用的訪問日志)
                        <Directory "">(基于路徑對資源做訪問控制)
                        ...
                        </Directory>
                        Alias(路徑別名)
                        ...

    e.g.  不同IP訪問不同站點:

                   注釋掉主配置文件的DocumentRoot

                      編譯一個文件:
                     # vim /etc/httpd/conf.d/vhosts.conf
                              <VirtualHost 172.168.110.6:80>
                                     ServiceName www.a.com
                                     DocumentRoot "/www/a.com/htdocs"
                              </VirtualHost>

                              <VirtualHost 172.168.110.7:80>
                                     ServiceName www.b.net
                                     DocumentRoot "/www/b.net/htdocs"
                              </VirtualHost>

                              <VirtualHost 172.168.110.8:80>
                                     ServiceName www.c.org
                                     DocumentRoot "/www/c.org/htdocs"
                              </VirtualHost>
                      語法檢查:httpd -t
                      重啟服務:service httpd reload

                    
     e.g.     基于端口的虛擬主機:
                    首先添加3個端口:可參考上面的常用配置 1 。
                     語法檢查:httpd -t
                 
                     編譯一個文件:
                     # vim /etc/httpd/conf.d/vhosts.conf

                    <VirtualHost 172.16.100.6:80>
                        ServerName www.a.com
                        DocumentRoot "/www/a.com/htdocs"
                    </VirtualHost>

                    <VirtualHost 172.16.100.6:808>
                        ServerName www.b.net
                        DocumentRoot "/www/b.net/htdocs"
                    </VirtualHost>

                    <VirtualHost 172.16.100.6:8080>
                        ServerName www.c.org
                        DocumentRoot "/www/c.org/htdocs"
                    </VirtualHost>
                     語法檢查:httpd -t
                     重啟服務:service httpd reload
                    
          e.g.     基于FQDN的虛擬主機:(端口一樣、地址一眼樣)
                    NameVirtualHost 172.16.100.6:80(基于FQDN的虛擬主機需要加一個專門的指令,Centos7不需要此指令)

                    <VirtualHost 172.16.100.6:80>
                        ServerName www.a.com
                        DocumentRoot "/www/a.com/htdocs"
                    </VirtualHost>

                    <VirtualHost 172.16.100.6:80>
                        ServerName www.b.net
                        DocumentRoot "/www/b.net/htdocs"
                    </VirtualHost>

                    <VirtualHost 172.16.100.6:80>
                        ServerName www.c.org
                        DocumentRoot "/www/c.org/htdocs"
                    </VirtualHost>                                            
                     語法檢查:httpd -t
                     重啟服務:service httpd reload   

          13、status頁面(查看運行中的進程詳細情況,應加以訪問認證)
                LoadModule  status_module  modules/mod_status.so
                編輯主配置文件,將以下幾行啟用。
                <Location /server-status>
                    SetHandler server-status
                    Order allow,deny
                    Allow from 172.16(建議設置為只允許某臺主機訪問)
                </Location>


        14、使用mod_deflate模塊壓縮頁面優化傳輸速度

            適用場景:
                (1) 節約帶寬,額外消耗CPU;同時,可能有些較老瀏覽器不支持;
                (2) 壓縮適于壓縮的資源,例如文件文件;

        # vim /etc/httpd/conf/httpd.conf

httpd 配置

                          語法檢查:httpd -t
                          重啟服務:service httpd reload    


CentOS 6上編譯安裝httpd2.4版本:


           CentOS 6默認apr和 apr-util是1.39版的,而httpd2.4,需要 apr和 apr-util 是1.4版本以上的。

              可以去 apr.apache.org官網下載1.4版本的。

              開發環境包組:Development Tools, Server Platform Development
              開發程序包:pcre-devel

                先關掉httpd服務不要開機自動啟動
                 # service httpd stop
                 # chkconfig httpd off
                
                編譯安裝步驟:
                    (1) apr-1.4+
                        # ./configure  --prefix=/usr/local/apr
                        # make && make install
                        
                    (2) apr-util-1.4+
                        # ./configure  --prefix=/usr/local/apr-util  --with-apr=/usr/local/apr
                        # make && make install
                        
                    (3) httpd-2.4
                        # ./configure --prefix=/usr/local/apache24 --sysconfdir=/etc/httpd24  --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
                        # make  && make install







































































































 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南充市| 开原市| 西平县| 鄂州市| 苏州市| 盐池县| 陕西省| 景德镇市| 蓝山县| 尼勒克县| 湟中县| 扶沟县| 秭归县| 绥宁县| 平塘县| 前郭尔| 临颍县| 昌都县| 三都| 霍城县| 龙江县| 陈巴尔虎旗| 古丈县| 汝阳县| 理塘县| 广安市| 南乐县| 石台县| 射阳县| 屏东市| 潮州市| 徐闻县| 西乌珠穆沁旗| 沂水县| 昔阳县| 无极县| 河池市| 岫岩| 南乐县| 建水县| 清水河县|