真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

第十三章httpd詳解

13.1 httpd簡(jiǎn)介

成都網(wǎng)站制作、做網(wǎng)站的關(guān)注點(diǎn)不是能為您做些什么網(wǎng)站,而是怎么做網(wǎng)站,有沒有做好網(wǎng)站,給成都創(chuàng)新互聯(lián)公司一個(gè)展示的機(jī)會(huì)來證明自己,這并不會(huì)花費(fèi)您太多時(shí)間,或許會(huì)給您帶來新的靈感和驚喜。面向用戶友好,注重用戶體驗(yàn),一切以用戶為中心。

  httpd是Apache超文本傳輸協(xié)議(HTTP)服務(wù)器的主程序。被設(shè)計(jì)為一個(gè)獨(dú)立運(yùn)行的后臺(tái)進(jìn)程,它會(huì)建立一個(gè)處理請(qǐng)求的子進(jìn)程或線程的池。

  通常,httpd不應(yīng)該被直接調(diào)用,而應(yīng)該在類Unix系統(tǒng)中由apachectl調(diào)用,在Windows中作為服務(wù)運(yùn)行。

13.2 httpd版本

  本文主要介紹httpd的兩大版本,httpd-2.2和httpd-2.4。

  CentOS6系列的版本默認(rèn)提供的是httpd-2.2版本的rpm包,而CentOS7默認(rèn)提供的是httpd-2.4版本的rpm包

13.2.1 httpd的特性

  httpd有很多特性,下面就分別來說說httpd-2.2版本和httpd-2.4版本各自的特性。

  httpd-2.2的特性:

  a) 事先創(chuàng)建進(jìn)程

  b) 按需維持適當(dāng)?shù)倪M(jìn)程

  c) 模塊化設(shè)計(jì),核心比較小,各種功能通過模塊添加(包括PHP),支持運(yùn)行時(shí)配置,支持單獨(dú)編譯模塊

  d) 支持多種方式的虛擬主機(jī)配置,如基于ip的虛擬主機(jī),基于端口的虛擬主機(jī),基于域名的虛擬主機(jī)等

  e) 支持https協(xié)議(通過mod_ssl模塊實(shí)現(xiàn))

  f) 支持用戶認(rèn)證

  g) 支持基于IP或域名的ACL訪問控制機(jī)制

  h) 支持每目錄的訪問控制(用戶訪問默認(rèn)主頁時(shí)不需要提供用戶名和密碼,但是用戶訪問某特定目錄時(shí)需要提供用戶名和密碼)

  i) 支持URL重寫

  j) 支持MPM(Multi Path Modules,多處理模塊)。用于定義httpd的工作模型(單進(jìn)程、單進(jìn)程多線程、多進(jìn)程、多進(jìn)程單線程、多進(jìn)程多線程)

    prefork:多進(jìn)程模型,預(yù)先生成進(jìn)程,一個(gè)請(qǐng)求用一個(gè)進(jìn)程響應(yīng)

      一個(gè)主進(jìn)程負(fù)責(zé)生成n個(gè)子進(jìn)程,子進(jìn)程也稱為工作進(jìn)程;

      每個(gè)子進(jìn)程處理一個(gè)用戶請(qǐng)求,即使沒有用戶請(qǐng)求,也會(huì)預(yù)先生成多個(gè)空閑進(jìn)程,隨時(shí)等待請(qǐng)求到達(dá),最大不會(huì)超過1024個(gè)

    worker:基于線程工作,一個(gè)請(qǐng)求用一個(gè)線程響應(yīng)(啟動(dòng)多個(gè)進(jìn)程,每個(gè)進(jìn)程生成多個(gè)線程)

    event:基于事件的驅(qū)動(dòng),一個(gè)進(jìn)程處理多個(gè)請(qǐng)求

  httpd-2.4的新特性:

  a) MPM支持運(yùn)行DSO機(jī)制(Dynamic Share Object,模塊的動(dòng)態(tài)裝/卸載機(jī)制),以模塊形式按需加載

  b) 支持event MPM,eventMPM模塊生產(chǎn)環(huán)境可用

  c) 支持異步讀寫

  d) 支持每個(gè)模塊及每個(gè)目錄分別使用各自的日志級(jí)別

  e) 每個(gè)請(qǐng)求相關(guān)的專業(yè)配置,使用來配置

  f) 增強(qiáng)版的表達(dá)式分析器

  g) 支持毫秒級(jí)的keepalive timeout

  h) 基于FQDN的虛擬主機(jī)不再需要NameVirtualHost指令

  i) 支持用戶自定義變量

  j) 支持新的指令(AllowOverrideList)

  k) 降低對(duì)內(nèi)存的消耗

13.2.2 httpd-2.4新增的模塊

  httpd-2.4在之前的版本基礎(chǔ)上新增了幾大模塊,下面就幾個(gè)常用的來介紹一下。

  mod_proxy_fcgi:反向代理時(shí)支持apache服務(wù)器后端協(xié)議的模塊

  mod_ratelimit:提供速率限制功能的模塊

  mod_remoteip:基于ip的訪問控制機(jī)制被改變,不再支持使用Order,Deny,Allow來做基于IP的訪問控制

13.3 httpd基礎(chǔ)

13.3.1 httpd自帶的工具程序

  htpasswd:basic認(rèn)證基于文件實(shí)現(xiàn)時(shí),用到的帳號(hào)密碼生成工具

  apachectl:httpd自帶的服務(wù)控制腳本,支持start,stop,restart

  apxs:由httpd-devel包提供的,擴(kuò)展httpd使用第三方模塊的工具

  rotatelogs:日志滾動(dòng)工具

    access.log -->

    access.log,access.1.log

    access.log,access.1.log,access.2.log

  suexec:訪問某些有特殊權(quán)限配置的資源時(shí),臨時(shí)切換至指定用戶運(yùn)行的工具

  ab:apache benchmark,httpd的壓力測(cè)試工具

13.3.2 rpm包安裝的httpd程序環(huán)境

  httpd-2.2版本程序環(huán)境:

    配置文件:

      /etc/httpd/conf/httpd.conf

      /etc/httpd/conf.d/*.conf

    配置文件的組成:grep "Section" /etc/httpd/conf/httpd.conf

### Section 1: Global Environment
### Section 2: 'Main' server configuration
### Section 3: Virtual Hosts

      配置格式:directive value

        directive:指令,不區(qū)分字符大小寫

        value:為路徑時(shí),取決于文件系統(tǒng)

    服務(wù)腳本:

      /etc/rc.d/init.d/httpd

    服務(wù)腳本的配置文件:

      /etc/sysconfig/httpd

    主程序文件:

      /usr/sbin/httpd

      /usr/sbin/httpd.event

      /usr/sbin/httpd.worker

    日志文件目錄:

      /var/log/httpd/

        access.log:訪問日志

        error_log:錯(cuò)誤日志

    站點(diǎn)文檔目錄:

      /var/www/html/

    模塊文件路徑:

      /usr/lib64/httpd/modules/

  httpd-2.4版本程序環(huán)境:

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

    模塊配置文件:/etc/httpd/conf.modules.d/*.conf

    輔助配置文件:/etc/httpd/conf.d/*.conf

    mpm:以DSO機(jī)制提供,配置文件為/etc/httpd/conf.modules.d/00-mpm.conf

13.3.3 web相關(guān)的命令

  curl命令:

    curl是基于URL語法在命令行方式下工作的文件傳輸工具,它支持FTP,F(xiàn)TPS,HTTP,HTTPS,GOPHER,TELNET,DICT,F(xiàn)ILE及LDAP等協(xié)議。

    curl支持:

      https認(rèn)證

      http的POST/PUT等方法

      ftp上傳

      kerberos認(rèn)證

      http上傳

      代理服務(wù)器

      cookies

      用戶名/密碼認(rèn)證

      下載文件斷點(diǎn)續(xù)傳

      socks5代理服務(wù)器

      通過http代理服務(wù)器上傳文件到ftp服務(wù)器

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

    常用的options:

      -A/--user-agent :設(shè)置用戶代理發(fā)送給服務(wù)器

      -basic:使用Http基本認(rèn)證

      --tcp-nodelay:使用TCP_NODELAY選項(xiàng)

      -e/--referer :來源網(wǎng)址

      --cacert :CA證書(SSL)

      --compressed:要求返回時(shí)壓縮的格式

      -H/--header :自定義請(qǐng)求首部信息傳遞給服務(wù)器

      -I/--head:只顯示響應(yīng)報(bào)文首部信息

      --limit-rate :設(shè)置傳輸速度

      -u/--user :設(shè)置服務(wù)器的用戶和密碼

      -0/--http1:使用http 1.0版本,默認(rèn)使用1.1版本。這個(gè)選項(xiàng)是數(shù)字0而不是字母o

  elinks命令:

    語法:elinks [options] [URL ...]

    常用的options:

      -dump:不進(jìn)入交互式模式,而直接將URL的內(nèi)容輸出至標(biāo)準(zhǔn)輸出

  httpd命令:

    語法:httpd [options]

    常用的options:

      -l:查看靜態(tài)編譯的模塊,列出核心中編譯了哪些模塊。它不會(huì)列出使用LoadModule指令動(dòng)態(tài)加載的模塊

      -M:輸出一個(gè)已經(jīng)啟用的模塊列表,包括靜態(tài)編譯在服務(wù)器中的模塊和作為DSO動(dòng)態(tài)加載的模塊

      -v:顯示httpd的版本,然后退出

      -V:顯示httpd和apr/apr-util的版本和編譯參數(shù),然后退出

      -X:以調(diào)試模式運(yùn)行httpd。僅啟動(dòng)一個(gè)工作進(jìn)程,并且服務(wù)器不與控制臺(tái)脫離

13.4 編譯安裝httpd-2.4

  httpd依賴于apr-1.4+,apr-util-1.4+,[apr-icon]

  apr:apache portable runtime

  CentOS6提供的apr是1.3.9版本,而apr-util也是1.3.9版本,所以想在CentOS6上安裝httpd-2.4版本時(shí)需要先安裝apr-1.4+和apr-util-1.4+,而在CentOS7中則不用另行安裝

  httpd-2.4編譯安裝步驟:

  a) 安裝開發(fā)環(huán)境(yum groupinstall)

  b) 下載并安裝apr-1.4+和apr-util-1.4+。此步驟僅需在CentOS6系列上執(zhí)行,CentOS7無需執(zhí)行此步

cd /usr/src/
wget http://mirrors.hust.edu.cn/apache//apr/apr-1.5.2.tar.bz2
wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.5.4.tar.bz2
tar xvf apr-1.5.2.tar.bz2
tar xvf apr-util-1.5.4.tar.bz2
cd apr-1.5.2
./configure --prefix=/usr/local/apr
make && make install
cd ../apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install

  c) 編譯安裝httpd

groupadd -r apache
useradd -r -g apache apache
yum -y install openssl-devel pcre-devel
./configure --prefix=/usr/local/apache --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

13.5 httpd常用配置

  httpd-2.2常用配置:

  修改監(jiān)聽的IP和端口:

Listen [IP:]PORT

    省略IP表示監(jiān)聽所有地址。Listen可重復(fù)出現(xiàn)多次

  持久連接:即長(zhǎng)連接

Persistent Connection:連接建立,每個(gè)資源獲取完成后不會(huì)立即斷開連接,而是繼續(xù)等待其它的請(qǐng)求完成

      如何斷開?

        數(shù)量限制:默認(rèn)獲取100個(gè)資源后會(huì)自動(dòng)斷開連接

        時(shí)間限制:可配置,對(duì)于并發(fā)很大的服務(wù)器來說,此值不能設(shè)定太大

      副作用:對(duì)于并發(fā)訪問量較大的服務(wù)器,持久連接功能會(huì)使有些請(qǐng)求得不到響應(yīng)

      折衷:使用較短的持久連接時(shí)間。httpd-2.4支持毫秒級(jí)持久時(shí)間

KeepAlive {On | Off}:設(shè)定是否啟用持久連接
MaxKeepAliveRequests 100:設(shè)定最大允許獲取的資源數(shù),當(dāng)達(dá)到些設(shè)定值時(shí)將自動(dòng)斷開連接
KeepAliveTimeout 15:設(shè)定時(shí)間限制,當(dāng)達(dá)到些時(shí)間限制時(shí)將自動(dòng)斷開連接

    測(cè)試持久連接:

telnet HOST PORT                # telnet 192.168.1.1 80
GET /URL HTTP/1.1              # GET /index.html HTTP/1.1
Host: HOSTNAME or IP        # Host: 192.168.1.1

  MPM:Multi Path Modules,多處理模塊。用于定義httpd的工作模型(單進(jìn)程、單進(jìn)程多線程、多進(jìn)程、多進(jìn)程單線程、多進(jìn)程多線程)

    httpd-2.2不支持同時(shí)編譯多個(gè)模塊,所以只能編譯時(shí)選定一個(gè)

    rpm安裝的包提供了三個(gè)二進(jìn)制程序文件,分別用于實(shí)現(xiàn)對(duì)不同MPM機(jī)制的支持。確認(rèn)方法:

ps aux |grep httpd

    默認(rèn)為/usr/sbin/httpd,其使用prefork

    更換使用的httpd程序:編輯/etc/sysconfig/httpd文件,并重啟服務(wù)使之生效

HTTPD={httpd | httpd.worker | httpd.event}

    配置MPM:編輯主配置文件/etc/httpd/conf/httpd.conf

    prefork的配置:

StartServers:服務(wù)啟動(dòng)時(shí)啟動(dòng)的服務(wù)器進(jìn)程數(shù)(提供服務(wù)的子進(jìn)程數(shù),不包含主進(jìn)程)
MinSpareServers:最少空閑進(jìn)程數(shù)
MaxSpareServers:最大空閑進(jìn)程數(shù)
ServerLimit:為MaxClients所準(zhǔn)備的在其服務(wù)生命周期內(nèi)所允許的進(jìn)程數(shù)量最大值
MaxClients:最大并發(fā)請(qǐng)求數(shù)
MaxRequestsPerChild:一個(gè)服務(wù)器進(jìn)程最多能夠響應(yīng)多少次的請(qǐng)求

    worker的配置:

StartServers:服務(wù)啟動(dòng)時(shí)啟動(dòng)的服務(wù)器進(jìn)程數(shù)(提供服務(wù)的子進(jìn)程數(shù),不包含主進(jìn)程)
MaxClients:服務(wù)端最多啟動(dòng)的線程數(shù)量
MinSpareThreads:最少空閑線程數(shù)
MaxSpareThreads:最多空閑線程數(shù)
ThreadsPerChild:每個(gè)進(jìn)程所能夠啟動(dòng)的線程數(shù)
MaxRequestsPerChild:每個(gè)線程所能夠響應(yīng)的最大請(qǐng)求數(shù)量,0表示無限制

  DSO:Dynamic Share Object,模塊的動(dòng)態(tài)裝/卸載機(jī)制

    配置指令實(shí)現(xiàn)模塊加載:

LoadModule  

    模塊路徑(mod_path)可使用相對(duì)路徑:

        相對(duì)于ServerRoot(/etc/httpd)指向的路徑而言

          /etc/httpd/modules   -->  /usr/lib64/httpd/modules

  定義“Main”server的文檔頁面路徑,DocumentRoot

    文檔路徑映射:

      DocumentRoot指向的路徑為URL路徑的起始位置

DocumentRoot "/var/www/html"

          test/index.html  -->  http://HOST:PORT/test/index.html

  站點(diǎn)訪問控制:

    可基于兩種類型的路徑指明對(duì)哪些資源進(jìn)行訪問控制:

      針對(duì)文件系統(tǒng)路徑:

 
 
 

      針對(duì)URL路徑:

 
 

    訪問控制機(jī)制:

      基于來源地址

      基于帳號(hào)

  Directory中“基于來源地址”實(shí)現(xiàn)訪問控制:httpd-2.2版本

    a) Options

      所有可用特性:

Indexes  Includes  FollowSymLinks  SymLinksifOwnerMatch  ExecCGI  MultiViews

        Indexes:索引,當(dāng)不指定要訪問的頁面具體路徑而又沒有默認(rèn)主頁(index.html)時(shí),以鏈接形式列出根(默認(rèn)為/var/www/html)下的所有內(nèi)容

        FollowSymLinks:允許跟蹤符號(hào)鏈接文件

    b) 基于來源地址的訪問控制機(jī)制

Order:檢查次序
Order allow,deny    先允許后拒絕。默認(rèn)所有都拒絕,只有明確允許的才允許訪問
Order deny,allow    先拒絕后允許。默認(rèn)所有都允許,只有明確拒絕的才拒絕訪問
Allow from 來源地址
Deny from 來源地址

      來源地址可以為:

        IP:如192.168.1.1

        NetAddr:

          172.16

          172.16.0.0

          172.16.0.0/16

          172.16.0.0/255.255.0.0

        FQDN:可以是完整的主機(jī)名,也可以是一個(gè)域名,如*.idfsoft.com

        All

  基于用戶的訪問控制:

    認(rèn)證質(zhì)詢:此處是一個(gè)響應(yīng)報(bào)文

      WWW-Authenticate:響應(yīng)碼為401,拒絕客戶端請(qǐng)求,并說明要求客戶提供帳號(hào)和密碼

    認(rèn)證:此處是一個(gè)請(qǐng)求報(bào)文

      Authorization:客戶端用戶填入帳號(hào)和密碼后再次發(fā)送請(qǐng)求報(bào)文,認(rèn)證通過,則服務(wù)器發(fā)送響應(yīng)的資源

      認(rèn)證類型:

        basic:明文

        digest:消息摘要,經(jīng)過MD5加密

    安全域:需要用戶認(rèn)證后才能訪問的路徑稱之為安全域

      應(yīng)該通過名稱對(duì)其進(jìn)行標(biāo)識(shí),并用于告知用戶認(rèn)證的原因

    用戶的帳號(hào)和密碼存儲(chǔ)于何處:

      虛擬帳號(hào):僅用于訪問某服務(wù)時(shí)用到的認(rèn)證標(biāo)識(shí)

      存儲(chǔ)機(jī)制:

        文本文件

        SQL數(shù)據(jù)庫

        ldap

        nis

    basic認(rèn)證:基于文本文件的存儲(chǔ)機(jī)制

      a) 定義安全域


  Options None
  AllowOverride None
  AuthType Basic
  AuthName "String"
  AuthUserFile "/PATH/TO/HTTPD_USER_PASSWD_FILE"
  Require user username1 username2 ...     #只允許帳號(hào)文件中指定的用戶登錄訪問


允許帳號(hào)文件中的所有用戶登錄訪問:
  在 之間添加Require valid-user

      b) 提供帳號(hào)和密碼存儲(chǔ)(使用htpasswd命令)

htpasswd [options] passwordfile username

      常用的options:

        -c:自動(dòng)創(chuàng)建passwordfile,因此,僅應(yīng)該在添加第一個(gè)用戶時(shí)使用

        -m /path/to/passwordfile:md5加密用戶密碼

        -s:sha1加密用戶密碼

        -D:刪除指定用戶

      c) 實(shí)現(xiàn)基于組進(jìn)行認(rèn)證


  Options None
  AllowOverride None
  AuthType Basic
  AuthName "String"
  AuthUserFile "/PATH/TO/HTTPD_USER_PASSWD_FILE"
  AuthGroupFile "/PATH/TO/HTTPD_GROUP_FILE"
  Require group GROUP1 GROUP2 ...

      要提供用戶帳號(hào)文件和組文件:

        組文件:只能手動(dòng)定義,每一行定義一組。格式如下:

GROUP_NAME:user1 user2 user3 ...

  在組文件中的user必須在帳號(hào)文件中存在。

  定義默認(rèn)主頁面:

DirectoryIndex index.html index.html.var

  日志設(shè)定:

    定義日志格式:LogFormat 

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

      常用的日志格式定義宏:詳情請(qǐng)看 官方文檔

%h:客戶端IP地址
%l:小寫的L,遠(yuǎn)程登錄的用戶名,Remote logname (from identd,if supplied). -表示為空
%u:遠(yuǎn)程用戶。Remote user, (from auth; may be bogus if return status (%s) is 401)
%t:服務(wù)器收到請(qǐng)求的時(shí)間
%r:請(qǐng)求報(bào)文的首行信息(請(qǐng)求的方法,URL,協(xié)議版本)
%>s:響應(yīng)狀態(tài)碼
%b:響應(yīng)報(bào)文的大小,不包含響應(yīng)報(bào)文首部,單位是字節(jié)
%{Referer}i:請(qǐng)求報(bào)文當(dāng)中"referer"首部的值。當(dāng)前資源的訪問入口,即從哪個(gè)頁面中的超鏈接跳轉(zhuǎn)而來
%{User-Agent}i:請(qǐng)求報(bào)文當(dāng)中"User-Agent"首部的值。即發(fā)出請(qǐng)求用到的應(yīng)用程序

                                       

   錯(cuò)誤日志:

Errorlog logs/error_log
LogLevel <日志級(jí)別>    #默認(rèn)是warn級(jí)別

     日志級(jí)別有以下這些:從低到高,日志級(jí)別越低,記錄越詳細(xì)

      debug

      info

      notice

      warn

      error

      crit

      alert

      emerg

   訪問日志:

CustomLog logs/access_log combined

  路徑別名:把一個(gè)URL映射至別的路徑上

Alias /URL/ "/PATH/TO/SOMEDIR/"
如:Alias /bbs/ "/bbs/htdocs"

  設(shè)定默認(rèn)字符集:

AddDefaultCharset UTF-8

  

  虛擬主機(jī):

   有三種實(shí)現(xiàn)方案:

     基于ip:為每個(gè)虛擬主機(jī)準(zhǔn)備至少一個(gè)ip地址

     基于port:為每個(gè)虛擬主機(jī)準(zhǔn)備至少一個(gè)專用port,實(shí)踐中很少使用

     基于域名:為每個(gè)虛擬主機(jī)準(zhǔn)備至少一個(gè)專用域名

      需要將NameVirtualHost的注釋去掉

     可混合使用上述三種方式中任意方式

   注意:一般虛擬主機(jī)莫與中心主機(jī)混用,所以,要使用虛擬主機(jī),必須先禁用中心主機(jī)

     禁用中心主機(jī):注釋DocumentRoot

   每個(gè)虛擬主機(jī)都有專用配置:還可以在虛擬主機(jī)中通過Directory進(jìn)行訪問控制

    #此處的*可以換成指定的IP地址
  ServerAdmin webmaster@dummy-host.example.com
  DocumentRoot /www/docs/dummy-host.example.com
  ServerName dummy-host.example.com
  ErrorLog logs/dummy-host.example.com-error_log
  CustomLog logs/dummy-host.example.com-access_log common

  內(nèi)置的status頁面:可以查看服務(wù)器的狀態(tài)


  SetHandler server-status
  Order deny,allow
  Deny from all
  Allow from .example.com

  使用mod_deflate模塊壓縮頁面優(yōu)化傳輸速度:適用于httpd-2.2版本

   適用場(chǎng)景:

     a) 節(jié)約帶寬,額外消耗CPU,同時(shí),可能有些較老瀏覽器不支持

     b) 壓縮適于壓縮的資源,例如文本文件

   方法:

     a) 編輯主配置文件/etc/httpd/conf/httpd.conf,查找mod_deflate.so,將其前面的注釋去掉,啟用mod_deflate模塊

     b) 將以下內(nèi)容添加至主配置文件:

SetOutputFilter DEFLATE        #調(diào)用DEFLATE輸出過濾器

# mod_deflate configuration
# Restrict compression to these MIME types    對(duì)下面指定的類型進(jìn)行壓縮
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)    設(shè)定壓縮比率
DeflateCompressionLevel 9

# Netscape 4.x has some problems.    根據(jù)首部的User-Agent基于正則模式匹配瀏覽器類型和版本
BrowserMatch ^Mozilla/4 gzip-only-text/html        #瀏覽器是Mozilla/4時(shí),用gzip壓縮,但只壓縮text/html格式的文檔
# Netscape 4.06-4.08 have some more problems    根據(jù)首部的User-Agent基于正則模式匹配瀏覽器類型和版本
BrowserMatch ^Mozilla/4\.0[678] no-gzip                #瀏覽器是Mozilla的4.0、4.6、4.7或4.8版本時(shí)不壓縮
# MSIE masquerades as Netscape, but it is fine    根據(jù)首部的User-Agent基于正則模式匹配瀏覽器類型和版本
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html    #瀏覽器是IE6.0之前的版本時(shí),不壓縮,若要壓縮則只用gzip壓縮text/html格式的文檔

  配置httpd支持https:

   a) 為服務(wù)器申請(qǐng)數(shù)字證書

     測(cè)試:通過私建CA發(fā)證書

      創(chuàng)建私有CA

      在服務(wù)器創(chuàng)建證書簽署請(qǐng)求

      CA簽證

   b) 配置httpd支持使用ssl,及使用的證書

yum -y install mod_ssl

     配置文件:/etc/httpd/conf.d/ssl.conf

DocumentRoot = ??
ServerName = ??
SSLCertificateFile = ??
SSLCertificateKeyFile = ??

   c) 測(cè)試基于https訪問相應(yīng)的主機(jī)

openssl s_client [-connect host:port] [-cert filename] [-CApath directory] [-CAfile filename]

  httpd-2.4常用配置:

   切換使用MPM(編輯/etc/httpd/conf.modules.d/00-mpm.conf文件):

LoadModule mpm_NAME_module modules/mod_mpm_NAME.so

#   NAME:有三種,分別為prefork,event,worker

   修改“Main" Server的DocumentRoot

   基于IP的訪問控制法則:

     允許所有主機(jī)訪問: Require all granted

     拒絕所有主機(jī)訪問: Require all deny

     控制特定IP訪問:

Require ip IPADDR:授權(quán)指定來源地址的主機(jī)訪問
Require not ip IPADDR:拒絕指定來源地址的主機(jī)訪問

IPADDR的類型:
  IP:192.168.1.1
  Network/mask:192.168.1.0/255.255.255.0
  Network/Length:192.168.1.0/24
  Net:192.168

     控制特定主機(jī)(HOSTNAME)訪問:

Require host HOSTNAME
Require not host HOSTNAME

HOSTNAME的類型:
  FQDN:特定主機(jī)的全名
  DOMAIN:指定域內(nèi)的所有主機(jī)

     注意:httpd-2.4版本默認(rèn)是拒絕所有主機(jī)訪問的,所以安裝以后必須做顯示授權(quán)訪問

     示例:


  Require not ip 192.168.1.20
  Require all granted

   虛擬主機(jī):

     基于IP、PORT和域名都支持

     基于域名的不再需要NameVirtualHost指令

   ssl:

     啟用模塊:編輯/etc/httpd/conf.modules.d/00-base.conf文件,添加下面這行,如果已經(jīng)有了但是注釋了,則取消注釋即可

LoadModule ssl_module modules/mod_ssl.so

    服務(wù)腳本:

     CentOS6編譯安裝的服務(wù)腳本:apachectl {start | stop | restart}

     CentOS7的服務(wù)腳本:httpd.service,使用systemctl控制


網(wǎng)頁題目:第十三章httpd詳解
分享網(wǎng)址:http://weahome.cn/article/peogoi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部