设为首页 收藏本站
查看: 865|回复: 0

[经验分享] httpd(Apache)、httpd

[复制链接]

尚未签到

发表于 2018-11-18 10:20:35 | 显示全部楼层 |阅读模式
  下面介绍的是http协议基础、http协议的报文格式、httpd(Apache)、httpd-2.2、httpd-2.4。
  

  一、http协议基础 -------------超文本传输协议,无状态,可通过 cookie 机制来进行状态保存。
  1、协议版本
  http协议的版本有:http/0.9、http/1.0、http/1.1。
  http/1.0 ---------支持MIME机制,支持Cache机制,Method机制。
  http/1.1 --------强化了缓存、提出了持久连接机制
  

  http/1.0 的三种机制解释如下:
  MIME机制 ------------多用途互联网邮件扩展
  Cache机制 -----------缓存机制
  Method机制:
  GET --------请求获取相关资源
  POST -------在资源之后附加的数据
  HEAD -------请求资源的相应首部
  PUT --------请求服务器存储一个资源
  DELETE -----请求服务器删除某个资源
  TRACE ------请求服务器回送请求信息,用于故障诊断或检测
  CONNECT ----保留未被使用
  OPTIONS ----查询服务器性能,查询与资源相关的选项和请求资源的需求
  

  http协议 ------应用层协议,接口 80/tcp
  https协议 -----应用层协议,接口 443/tcp
  

  2、URI -----------统一资源标识符(web上的各种资源都可以用uri来标识)
  URI分为三部分:
  1)、访问资源的命名机制
  2)、存放资源的主机名称
  3)、资源自身的名称
  URL ------------统一资源【定位】符,可以说URL是URI的子集(URI自身存在的机制)。
  URL是互联网上,【描述web资源】的特定格式的一组字符串。
  URL由三部分构成:
  1)、协议 ------表资源的提供方式或访问方式
  2)、主机标识 --------可以是主机名称,也可以是IP地址
  3)、资源路径 --------使用某种特定方式实现的路径映射机制,标识资源的具体位置
  URL的通用格式:scheme://Server[:port]/PATH/TO/SOME_RESOUECE?PARAMETERS=VALUE#FLAGS
  例:http://www.baidu.com/index.html
  

  3、Web资源
  Web上可用的各种资源,如:html文档,图片,视频或音频片段,应用程序等,都可以使用URI来进行标识。客户端发送的一次请求,只能请求一个web资源。
  (1)、资源分类
  web资源分为两类:分为静态、动态两种资源。
  静态资源:服务器直接发送给客户端响应的资源。(html文档、图片、流媒体、文本、js)
  动态资源:在服务器上需要服务器按照某种方式执行之后生成相应的页面,再将页面发送给客户端响应的资源。(.php、.jsp、.NET、js)
  (2)、资源路径映射 ----------------chroot
  资源服务器的映射方式:DocumentRoot、Alias、vhost docroot、用户自己的docroot
  html文档 -------------超文本标记语言(查询访问时使用)
  格式:
  
  
  xxxx
  
  
  
  

  
  
  

  

  4、五种并发响应模型(服务器):
  (1)、单进程IO模型:只有一个进程,每次只能响应一个用户请求,串行响应。
  (2)、多进程IO模型:同时启动多个进程,每个进程可以响应一个用户请求。
  (3)、复用的IO模型:一个进程可以响应多个用户请求。
  多线程模型:一个进程可以生产多个线程,每个线程响应一个用户提供请求。
  事件驱动模型:一个进程【直接响应】多个用户请求。
  (4)、复用的多进程IO模型:启动多个进程,每个进程再分为多个线程,每个线程响应一个用户提供请求。
  (5)、复用的事件驱动IO模型:启动多个进程,每个进程直接响应多个用户请求。
  

  5、web服务器一次完整的http请求的处理过程:
  (1)、建立连接 -----三次握手
  (2)、接收请求:将客户端发送来的报文解封后放置于服务进程所在的内存空间。
  (3)、处理请求:对于接收到的数据报文,进行解析。
  (4)、访问资源:通过各种IO方式,获取到用户请求的资源。
  (5、)构建响应报文
  (6)、发送响应报文
  (7)、记录访问日志
  

  

  6、http请求处理的连接方式:持久连接、短连接
  持久连接:长连接,keepalive。对于持久连接,有时间限制(15秒)和数量限制(100个)
  非持久连接:短连接
  

  7、http协议的实现方式:httpd、nginx、lighttpd。
  

  

  二、http协议的报文格式 -----------也称为http首部、http头
  1、通用格式:
  起始行
  首部
  ...
  主题
  

  2、请求报文首部 -----------request headers
    
   value
  Host: www.qhdlink.com
  
  

  3、响应报文首部 -----------response headers
    
   value
  ...
  
  

  4、对于请求、响应报文首部中,各个字段的定义如下:
  Method:请求方法,客户端希望服务器执行的操作
  GET ----------服务器到客户端
  HEAD ---------只在乎表头
  POST ---------客户端到服务器
  

  Status-Code --------状态码,三位十进制整数,公有5类。
  主要作用:是标识请求处理过程的结果状态。
  五类:
  1xx:代码为100-101,信息提示
  2xx:200-206,成功类的相应状态码
  3xx:300-305,重定向类相应状态码
  301:永久重定向(响应一个提示信息,提示改变位置)
  302:临时重定向(用于响应新版)
  304:资源未被修改
  4xx:400-415,客户端错误类的响应状态码
  401:认证质询
  403:请求被拒绝(所请求的资源没有权限访问、用户身份错误)
  404:请求的资源不存在
  5xx:500-505,服务器端错误类的响应状态码
  500:服务器内部错误
  502:反向代理和上一级服务器通信失败,或请求超时
  

  reason-phrase ---------状态短语
  如:Forbidden
  

  header ------首部内容
  格式:Name: Value
  首部分类(5种):通用首部、请求首部、响应首部、实体首部、扩展首部
  1)、通用首部:请求报文和响应报文中都可以使用
  Date -------------创建报文的时间
  Connection -------------连接状态(长连接、短连接,即keepalive、closed)
  Via ---------------经由(报文传输过程中经由的代理节点的IP地址)
  Cache-Control ----------------缓存控制机制
  2)、请求首部:
  Accept ----------------可以接受的媒体形式,MIME(多用途互联网邮件扩展)
  媒体格式(MIME格式):Major/Minor ------主类型和次类型
  常用的媒体格式有:text/html、text/plaintext、image/jpeg、image/png、application/X-php
  Accept-Charset ------------可以接受的字符集
  如:ASCII码(单字节码),Linux每个汉字默认3个字节,Windows每个汉字默认2个字节
  Accept-Encoding ----------可以接受的编码格式(byte、gzip、deflate)
  Accept-Language ----------可以接受的语言
  Client-IP --------------可接受的客户端IP地址
  Host -----------请求的服务器名称,也称为主机头
  Referer -----------从哪跳转过来,不是直接键入的
  User-Agent --------------客户端代理程序
  Expect -----------期望到的内容(条件使式请求首部,3个)
  If-Modified-Since --------某时间后是否被修改过
  If-Unmodified-Since -------某时间后是否没被修改过
  If-Match ------本地缓存和服务器ETag是否相同
  3)、响应首部:消息性首部、安全响应首部
  消息性首部如下:
  Age -----------响应持续的时长;
  Server ----------服务器端软件程序的名称、版本
  Accept-Ranges -------------服务器端请求类型范围,*表所有
  Vary --------------服务器查看的其他首部列表
  

  安全响应首部如下:
  WWW-Authenticate -----------询问握手
  Set-Cookie ----------为客户端设定Cookie
  

  4)、实体首部:Allow、Location、Content-Encoding、Content-Language、Content-Location、Content-Type、Content-Length
  Allow --------------请求方法
  Location -------------资源的真正的URL地址
  Content-Location ----------真正实体资源的所在位置
  

  5)、扩展首部 ---------X开头
  

  

  三、httpd(Apache)
  httpd -----------应用程序(http daemon)
  1、版本
  httpd软件的版本:httpd-1.3、httpd-2.0、httpd-2.2、httpd-2.4。常用的是httpd-2.4。
  

  2、httpd特性
  httpd的特性:高度模块化(一个核心+多个模块)。其中,模块分为两类:动态和静态。静态是编译到核心中的功能,如果要更改静态模块,必须更换核心,所以必须重启。
  

  httpd的功能特性(7个):
  (1)、支持CGI(通用网关接口)
  (2)、支持虚拟主机的功能:标识虚拟主机----IP+port+主机名
  (3)、支持反向代理 ----------相当于代理服务器,可影响内部拓扑结构
  代理(正向代理) --------相当于代理客户
  (4)、支持负载均衡 ----------基于流量、基于业务、基于请求(相当于集群)
  (5)、可进行路径别名的设置
  (6)、支持身份验证机制:basic、digest。
  (7)、支持大量的第三方模块
  3、MPM模块 ---------多道处理模块,是并发响应模型的机制。(3种工作方式)
  (1)、prefork(默认):是一种多进程IO模型,有一个主进程和多个子进程,一个进程响应一个请求。其子进程,负责处理和响应请求。
  prefork具有主进程、子进程(子进程,处理请求和响应请求)。
  (2)、worker:复用的多进程IO模型(多线程),多进程多线程,一个线程响应一个请求。其子进程,负责管理线程,线程负责处理和响应请求。
  worker具有主进程、子进程、线程(线程,处理请求和响应请求)。
  (3)、event:复用的IO模型(事件驱动),其子进程处理和响应请求。
  event具有主进程、子进程(子进程,处理请求和响应请求)。
  event模型使用:
  在httpd-2.4中,event为建议使用模型,其前的版本中,event不稳定或没有加载。
  在centos6 中,采用httpd-2.2,所以采用的是event 测试模型,也不支持动态机制的MPM。
  在centos7 中,采用httpd-2.4,采用成熟的event,支持MPM机制。
  

  

  四、httpd-2.2
  1、httpd-2.2中的服务(centos6)
  启动服务 ----------------/etc/rc.d/init.d/httpd
  # /etc/rc.d/init.d/httpd {start|stop|restart|reload|status}
  # service httpd {start|stop|restart|reload|status}
  开机自启:chkconfig [--level 23456] httpd on|off
  2、httpd-2.2的程序环境
  配置文件:
  /etc/httpd/conf/httpd.conf ----------主配置文件
  /etc/httpd/conf.d/*.conf ----------辅助配置文件
  /etc/httpd/conf.d/magic -----------实现MIME功能(多用途互联网邮件扩展)
  /etc/sysconfig/httpd  -------------httpd服务器【启动脚本】的配置文件
  程序文件:/usr/sbin/httpd
  /usr/sbin/httpd.event
  /usr/sbin/httpd.worker
  日志文件:/var/log/httpd -----包括访问日志和错误日志
  默认站点的文档和目录:/var/www/html
  模块文件的路径:/usr/lib64/httpd/modules -----------存在符号链接文件/etc/httpd/modules
  

  3、httpd-2.2与centos7的httpd-2.4比较:
  启动服务:/usr/lib/systemd/system/httpd.service
  # systemctl {start|stop|restart|reload|status} httpd[.service]
  开机自启:
  # systemctl enable|disable httpd.service
  在httpd2.4中,支持静态模块,每个MPM模型对应一个模块。
  配置文件:(多了一种)
  /etc/httpd/conf.modules.d -------------额外的模块专用的配置文件
  

  程序文件(二进制文件):---------------/usr/sbin/httpd
  /usr/lib64/httpd/modules/mod_mpm_event.so
  /usr/lib64/httpd/modules/mod_mpm_prefork.so
  /usr/lib64/httpd/modules/mod_mpm_worker.so
  /usr/sbin/apachectl -------------------服务控制命令
  

  4、安装httpd --------------------httpd、httpd-tools、httpd-devel、httpd-manual
  安装httpd的两种方式如下:
  1)、rpm包 -----本地光盘yum源中
  2)、编译安装 ------定制新功能,为了安全,可去除带有漏洞后门的模块
  安装的httpd拥有的四个包:主程序包、httpd的工具包、httpd的开发包、离线帮助文档。
  # yum list all httpd*
  

  httpd2.2的主配置文件:-------------------/etc/httpd/conf/httpd.conf
  在此配置文件中,所有的配置选项都被称为选项,指令格式为:directive value(驼峰式)。在修改了配置文件中的指令后,可以使用reload使之生效。在httpd2.2 中,如果【更改了监听的IP地址,则必须重启服务】。在主配置文件中,所有的指令被分别写到三个配置部分中
  

  下面是修改配置文件中的指令:(16类)
  (1)、修改监听的地址和端口
  格式:Listen [IP:]PORT
  注意:listen指令可以定义多次,如果省略了IP地址,即 0.0.0.0,意味着httpd服务进程将监听服务器上配置的所有IP地址。
  

  (2)、持久连接的特性(3个)------------KeepAlive
  持久连接,就是当服务器和客户端已经建立其tcp连接之后,在完成一次请求之后,连接不断开,而是等待其他用户发送请求。
  断开条件:数量限制、时间限制。
  相关指令:KeepAlive Off|On  ------------------持久连接开启或关闭
  MaxKeepAliveRequests 100  ----------------最多持久连接数
  KeepAliveTimeout 15  --------------持久连接的时间,默认单位为秒
  # httpd -t -----------------测试语法结构的对错
  请求测试:
  # telnet SERV_IP SERV_PORT
  GET /PATH/TO/RESOURCE HTTP/1.1
  Host: SERV_IP
  例:# telnet 172.16.67.1 80 ------------进入Telnet模式,进行请求输入。
  > GET html HTTP/1.1
  > Host: 172.16.67.1 -------------两次回车载入
  

  (3)、MPM ------------多道处理模块
  httpd-2.2的MPM不支持DSO机制,并且event为测试模式。
  # httpd -M -----------列出所有支持模块,包括静态和共享模块
  # httpd -l -----------查看静态编译的模块
  

  三个配置文件:/usr/sbin/httpd、/usr/sbin/httpd.event、/usr/sbin/httpd.worker。
  与prefork相关的配置指令:(子进程)
  
  StartServers       8  -------------在服务刚启动时,预先fork几个子进程
  MinSpareServers    5  --------------最小预留的空闲子进程的数量
  MaxSpareServers   20  -------------最多预留的空闲子进程的数量
  ServerLimit      256  --------------为MaxClients指定的最大值
  MaxClients       256  ----------------最大的并发访问量
  MaxRequestsPerChild  4000  -------------------每个子进程处理的最大请求数量
  
  

  与worker相关的配置指令:(线程)
  
  StartServers         4  -------------------在服务刚启动时,预先fork几个子进程
  MaxClients         300  ------------------并行访问的上限
  MinSpareThreads     25  -------------------最小预留的空闲线程数量
  MaxSpareThreads     75  -----------------最大预留的空闲线程数量
  ThreadsPerChild     25  -----------------每个进程管理的最大线程数量
  MaxRequestsPerChild  0  ------------------每个子进程处理的最大请求数量
  
  

  (4)、DSO机制 -----------LoadModule
  modules,即/etc/httpd/modules。
  

  (5)、"Main" Server -----------定义主机的基本指令
  格式:ServerName FQDN[:PORT]
  DocumentRoot "/var/www/html"
  配置:
  http://172.16.69.1/test.html ----------路径映射
  DocumentRoot "/myweb/data"
  

  例:配置了配置文件后,进行以下操作:
  # mkdir -pv /myweb/data
  # vim /myweb/data/index.html
  重载配置文件
  客户端访问到http://172.16.69.1/index.html
  

  (6)、站点资源的访问控制
  1)、基于文件系统的访问控制:分为三类,分别为:基于【指定目录】的访问控制、基于【特定文件】的访问控制、基于【模式匹配】进行文件的访问控制。
  基于【指定目录】的访问控制,格式如下:
  
  Directive Value
  
  

  基于【特定文件】的访问控制,格式如下:
  
  Directive Value
  
  

  基于【模式匹配】进行文件的访问控制,格式如下:
  
  Directive Value
  
  

  2)、基于URL路径进行访问控制:分为两类,分别为:基于【URL】进行、基于【模式匹配】进行URL路径访问。
  基于URL进行,格式如下:
  
  Directive Value
  
  

  基于模式匹配进行URL路径访问,格式如下:
  
  Directive Value
  
  

  3)、常用的目录中的访问控制指令有:各种options指令、AllowOverride指令。
  Options指令:
  Indexes ---------允许索引(一般用于资源下载站点),对于正常的Web站点来说,应禁用此功能。
  FollowSymLinks -------跟踪符号链接
  SymLinksifOwnerMatch -------------只有当子进程的所有者和链接文件的所有者为同一用户时,才跟踪符号链接
  ExecCGI ---------允许执行CGI脚本
  AllowOverride指令:-----------------控制那些允许放置于 .htaccess 文件中的指令,具有继承特性。该指令的值设置为None
  .htaccess的三个配置文件:/myweb/data/.htaccess /myweb/data/images/.htaccess /myweb/data/admin/.htaccess
  Order指令、Allow指令、Deny指令:
  Order指令 ----------定义基于IP地址的访问控制,规定了访问控制的检查顺序,allow,deny 和 deny,allow 访问结果不同。
  

  (7)、web站点主页文件的定义
  当用户给出的URL中,【没有明确指明资源的具体名称】时,此处会根据此处的文件名去依次匹配,先后顺序优先。
  例:
  DirectoryIndex index.html in.html index.html.var
  

  (8)、定义路径别名
  格式:Alias /URL/ "/PATH/TO/SOME_DIR/"
  在Alias指令格式中,URL右侧的"/"相当于后面的路由右侧的"/",他们是匹配的。
  

  (9)、日志功能:错误日志、访问日志。
  访问日志的各选项解释:
  %h -----------客户端的IP地址
  %l ------------登录名,没有则为"-"
  %s ------------状态信息
  %b ------------资源大小
  

  (10)、离线帮助手册 ---------------配置文件:/etc/httpd/conf.d/manual.conf(重载之后生效)
  # yum -y install httpd-manual
  

  (11)、基于用户的访问控制
  httpd的认证功能:(2种)
  认证质询机制(响应报文的状态码为 401)-----------需进行身份验证,先拒绝访问,进行登录
  认证 -------客户端填写账户和密码,登录后之后,发送报文
  httpd的认证方式:(2种)
  basic认证 ---------明文认证
  digest认证 --------消息摘要认证
  虚拟用户账号 ----------该账号无法进行系统级认证,只能用于访问服务器上某特定服务的账户
  一般来讲,虚拟用户时存放于某特定的数据格式中,如:文本文件、SQL数据库(写效率高)、LDAP目录数据库(读效率高)
  安全域 ------需要通过用户认证才能访问资源
  

  htpasswd命令 ---------------------创建用户/组文件
  常用选项:
  -c 创建用户账户文件(只用于创建第一个,建第二个用户以后的账户不要用-c)
  -m 使用md5加密用户密码
  -s 使用sha加密用户密码
  -D 删除用户
  

  例:basic认证的配置(定义安全域、创建用户/组文件)
  1)、定义安全域
   ------------基于【虚拟用户】做身份验证
  Options None
  AllowOverride None
  Authtype basic
  AuthName "SOME_STRING"
  AuthUserFile "/PATH/TO/HTTP_USER_FILE"
  Require user user1 user2 ...
  
   ----------基于【虚拟组】做身份验证
  Options None
  AllowOverride None
  Authtype basic
  AuthName "SOME_STRING"
  AuthUserFile "/PATH/TO/HTTP_USER_FILE"
  AuthGroupFile "/PATH/TO/HTTP_GROUP_FILE"
  Require group group1 group2 ...
  
  

  2)、创建用户/组的文件(htpasswd命令)
  格式:GROUP_NAME: user1 user2 ...
  

  (12)、系统状态数据查询:server-status
  # httpd -M | grep status
  ExtendedStatus On|Off -----------开启或关闭更多的额外系统状态信息
  例:
  
  SetHandler server-status
  Order deny,allow
  Deny from all
  Allow from 172.16
  
  

  (13)、虚拟主机
  对于每个web站点,都有一个属于其独立的标识。Main Server 和虚拟主机不能同时使用。两个都有的话,Main Server失效,虚拟主机有效。
  站点标识:IP地址、PORT、主机头(FQDN)
  三种典型的虚拟主机实现方式:
  1)、基于IP地址的虚拟主机 -----每个虚拟主机使用一个独立的IP地址
  2)、基于PORT端口的虚拟主机 -------每个虚拟主机使用一个端口
  3)、基于主机头的虚拟主机 ----------每个虚拟主机使用一个独有的FQDN
  

  虚拟主机的配置方法:------------在 ./conf.d/ 下进行主机配置
  
  DocumentRoot /www/docs/dummy-host.example.com
  ServerName dummy-host.example.com
  
  vhosts-www1.conf
  

  基于IP地址的配置示例:(2台虚拟主机)---------------vim /etc/httpd/conf.d/vhost-www1.conf
  # vim /etc/httpd/conf.d/vhost-www1.conf
  # vim /etc/httpd/conf.d/vhost-www2.conf
  /etc/httpd/conf.d/vhosts-www1.conf
  
  DocumentRoot "/myweb/vhosts/www1"
  ServerName www1.qhdlink.com
  
  

  /etc/httpd/conf.d/vhosts-www2.conf
  
  DocumentRoot "/myweb/vhosts/www2"
  ServerName www2.qhdlink.com
  
  基于端口的配置示例:------------/etc/httpd/conf.d/vhosts-www3.conf
  注意基于端口配置的时候,要指明端口号,不然和没指明的时候一样,不是端口的配置。进行端口配置的前提,是需要让httpd事先监听于指定的额外端口,即Listen PORT。
  /etc/httpd/conf.d/vhosts-www3.conf
  Listen 60080
  
  DocumentRoot "/myweb/vhosts/www3"
  ServerName www3.qhdlink.com
  
  基于FQDN的虚拟主机配置示例:----------------------/etc/httpd/conf.d/vhosts-www4.conf
  主机名成为关键,IP和端口号都可以和前面一致。
  # httpd -t ------检验语法
  /etc/httpd/conf.d/vhosts-www4.conf
  NameVirtualHost 172.16.69.1:80
  
  DocumentRoot "/myweb/vhosts/www4"
  ServerName www4.qhdlink.com
  
  

  (14)、https的实现 ------------SSL会话是基于IP地址所创建的,【单IP地址】的主机上,仅可以创建一个https虚拟主机。
  1)、为httpd生成私钥并签发证书,步骤如下:
  1).生成私钥及证书请求
  # mkdir /etc/httpd/ssl
  # cd /etc/httpd/ssl
  # (umask 077; openssl genrsa -out httpd.key 2048)
  # openssl req -new -key httpd.key -out httpd.csr -days 3653
  # scp httpd.csr 172.16.72.1:/tmp
  2).在CA上签发证书
  CA]# openssl ca -in /tmp/httpd.csr -out certs/httpd.crt -days 3653
  CA]# scp certs/httpd.crt 172.16.69.1:/etc/httpd/ssl
  3).在httpd服务器上清除证书请求文件
  # rm -f httpd.csr
  

  2)、配置httpd -------------------支持使用SSL,确定已装载mod_ssl模块
  # yum -y install mod_ssl
  修改配置文件,修改公钥和私钥的安装位置。
  例:
  /usr/lib64/httpd/modules/mod_ssl.so
  /etc/httpd/conf.d/ssl.conf
  
  DocumentRoot "/myweb/vhosts/ssl"
  ServerName www.qhdlink.com
  SSLCertificateFile /etc/httpd/ssl/httpd.crt
  SSLCertificateKeyFile /etc/httpd/ssl/httpd.key
  
  

  (15)、user/group ------------指定以哪个用户的身份运行httpd服务进程
  格式:
  User apache
  Group apache
  (16)、mod_deflate模块 -----------------压缩页面,优化传输速度
  SetOutputFilter DEFLATE
  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
  DeflateCompressionLevel 9 ----------------压缩级别,1~9,9最高
  BrowserMatch ^Mozilla/4  gzip-only-text/html ------------浏览器
  BrowserMatch  ^Mozilla/4\.0[678]  no-gzip
  BrowserMatch \bMSI[E]  !no-gzip !gzip-only-text/html
  

  

  五、httpd-2.4
  1、httpd-2.4具有特性如下:(10个)
  (1)、MPM支持DSO机制,以模块方式加载和卸载
  (2)、event MPM 稳定,生产可用
  (3)、支持异步IO机制,使得并发传输性能提高
  (4)、支持没模块及每目录单独日志级别定义
  (5)、每请求相关的专用配置
  (6)、增强版的表达式分析器
  (7)、毫秒级的keepalive超时时长
  (8)、基于FQDN的虚拟主机无需使用NameVirtualHost指令
  (9)、支持用户自定义变量
  (10)、更低的内在开销
  2、httpd-2.4的新模块(3个):
  mod_proxy_fcgi
  mod_proxy_scgi
  mod_remoteip
  3、安装httpd-2.4 ---------centos6中需编译安装。
  # yum install httpd
  httpd的配置环境:主配置文件、模块的配置文件、片段配置文件。
  主配置文件 ---------------/etc/httpd/conf/httpd.conf
  模块配置文件 -------------/etc/httpd/conf.modules.d/*.conf
  片段配置文件 -------------/etc/httdp/conf.d/*.conf
  

  4、httpd-2.4配置特点(特有):
  (1)、切换MPM -----------三个模块只能有一个生效,不能让多个MPM同时生效
  编辑:/etc/httpd/conf.modules.d/00-mpm.conf
  LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
  LoadModule mpm_worker_module modules/mod_mpm_worker.so
  LoadModule mpm_event_module modules/mod_mpm_event.so
  (2)、基于IP地址的访问控制
  不再支持Allow、Deny这样的指令,改用Require指令完成访问控制功能。
  注意:【默认】情况下,httpd-2.4拒绝所有主机访问。如果拒绝和允许同时要控制,则所有Require必须放在RequireAny容器中。
  【允许和拒绝】同时要控制,则所有Require指令必须放在RequireAny容器中,具体解释如下:
  
  Require all denied
  Require ip 172.16.69.1
  
  

  
  Require all granted
  Require not ip 172.16.69.1
  
  

  
  Require all denied
  Require host qhdlink.com
  
  

  (3)、虚拟主机
  即便使用基于FQDN方式构建的虚拟主机,也无需再使用NameVirtualHost指令。
  
  DocumentRoot "/myweb/vhosts/www"
  ServerName www.qhdlink.com
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-636487-1-1.html 上篇帖子: Apache理论与实战 下篇帖子: apache服务基础与安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表