httpd

栏目: 服务器 · Apache · 发布时间: 7年前

内容简介:httpd
  • http服务器程序:
    • httpd (apache)

      nginx

      lighttpd

  • httpd的特性:
    • 高度模块化: core + modules

      DSO:dynamic shared object(模块的动态加载)

      MPM:Multipath processing Modules (多路处理模块)

      • prefork:多进程模型,每个进程响应一个请求;
        1. 一个主进程:负责生成子进程及回收子进程;负责创建套接字;负责接收请求,并将其派发给某子进程进行处理;
        2. n个子进程:每个子进程处理一个请求;
        3. 工作模型:会预先生成几个空闲进程,随时等待用于响应用户请求;最大空闲和最小空闲;
      • worker:多进程多线程模型,每线程处理一个用户请求;
        1. 一个主进程:负责生成子进程;负责创建套接字;负责接收请求,并将其派发给某子进程进行处理;
        2. 多个子进程:每个子进程负责生成多个线程;
        3. 每个线程:负责响应用户请求;
        4. 并发响应数量:m*n
          m:子进程数量
          n:每个子进程所能创建的最大线程数量;
      • event:事件驱动模型,多进程模型,每个进程响应多个请求;
        1. 一个主进程 :负责生成子进程;负责创建套接字;负责接收请求,并将其派发给某子进程进行处理;
        2. 子进程:基于事件驱动机制直接响应多个请求;
          httpd-2.2: 仍为测试使用模型;httpd-2.4:event可生产环境中使用;
  • httpd功能特性:

    CGI:Common Gateway Interface(支持动态网站的接口)

    虚拟主机:IP,PORT, FQDN

    反向代理

    负载均衡

    路径别名

    丰富的用户认证机制:basic、digest

    支持第三方模块

  • 安装httpd

    • rpm包:CentOS 发行版中直接提供;

      编译安装:定制新功能,或其它原因;

  • 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(prefork)
      /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 httpd {start|stop|restart|status|configtest|reload}
  • CentOS 7:httpd-2.4

    • 配置文件:
      /etc/httpd/conf/httpd.conf
      /etc/httpd/conf.d/*.conf
      模块相关的配置文件:/etc/httpd/conf.modules.d/*.conf;
      systemd unit file:/usr/lib/systemd/system/httpd.service
    • 主程序文件:
      /usr/sbin/httpd
      httpd-2.4支持MPM的动态切换;
    • 日志文件:
      /var/log/httpd:
      access_log:访问日志
      error_log:错误日志
    • 站点文档:
      /var/www/html
    • 模块文件路径:
      /usr/lib64/httpd/modules
    • 服务控制:
      systemctl enable|disable httpd.service
      systemctl {start|stop|restart|status} httpd.service

httpd配置

  • 配置的实现方式

    • 编辑:/etc/httpd/conf/httpd.conf
    • 在/etc/httpd/conf.d/下配置模块化的文件
  • 主配置文件:/etc/httpd/conf/httpd.conf,配置段的划分

    ### Section 1: Global Environment    全局环境
    ### Section 2: 'Main' server configuration  主服务器配置段
    ### Section 3: Virtual Hosts  虚拟主机配置
    
    主服务器和虚拟服务器不能同时生效;
        httpd-2.2,需要手动关闭一个;
        httpd-2.4,两者之间可自动关闭;
  • 配置格式:

    • directive value
      • directive:指令;不区分字符大小写;

        value:指令的值;为路径时,是否区分字符大小写,取决于文件系统;

    • 配置块

      示例:
      
      <Directory />
        AllowOverride none
        Require all denied
      </Directory>
      
      内部指令的生效范围只对此配置块描述的范围有效;
  • 常用配置:

    1. 修改监听的IP和PORT

      Listen [IP-address:]portnumber [protocol]

      • 省略IP表示为0.0.0.0;
      • Listen指令可重复出现多次;
        Listen 80
        Listen 8080
      • 修改监听socket,重启服务进程方可生效;
      • 限制其必须通过ssl通信时,protocol需要定义为https;
    2. 持久连接(保持连接,长连接)

      Persistent Connection:tcp连续建立后,每个资源获取完成后不全断开连接,而是继续等待其它资源请求的进行;

      • 如何使其连接时不至于过长?

        • 数量限制 or 时间限制

          副作用:对并发访问量较大的服务器,长连接机制会使得后续某些请求无法得到正常响应;

          折衷:使用较短的持久连接时长,以及较少的请求数量;

          主配置文件/etc/httpd/conf/httpd.conf中没有相关设置;可以新建一个配置文件,在/etc/httpd/conf.d/
          
          KeepAlive  On|Off  是否使用长连接
          KeepAliveTimeout  15    超时时长
          MaxKeepAliveRequests  100   连接时请求的资源的多少
          
          注意:httpd-2.4的KeepAliveTimeout可以是毫秒级;
            KeepAliveTimeout num[ms]
        • 编辑完文件后,检查文件:httpd -t
      • 测试:

        telnet WEB_SERVER_IP PORT

        GET /URL HTTP/1.1

        Host: WEB_SERVER_IP

        示例:
        telnet 172.16.0.67
        
        GET /index.html HTTP/1.1
        host:172.16.0.67
    3. MPM

      • httpd-2.2,不支持同时编译多个MPM模块,所以只能编译选定要使用的那个;CentOS 6的rpm包为此专门提供了三个应用程序文件,httpd(prefork), httpd.worker, httpd.event,分别用于实现对不同的MPM机制的支持;确认现在使用的是哪下程序文件的方法:ps aux | grep httpd

        • 更换使用httpd程序,以支持其它MPM机制;

          /etc/sysconfig/httpd

          HTTPD=/usr/sbin/httpd.{worker,event}

          #HTTPD=/usr/sbin/httpd.worker
          HTTPD=/usr/sbin/httpd.worker
          
          选择启用哪一个模块;
          默认使用的为/usr/sbin/httpd,其为prefork的MPM模块;

          注意:重启服务进程方可生效

      • httpd-2.4更换MPM模块;编辑/etc/httpd/conf.modules.d/00-mpm.conf;选择要使用MPM的LoadModule。

      • 查看httpd程序的模块列表:

        查看静态编译的模块:

        ~]# httpd -l

        查看静态编译及动态编译的模块:

        ~]# httpd -M

      • MPM配置:编辑/etc/httpd/conf/httpd.conf

        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>
      • 统计网站浏览量的指标:PV,UV,IP

        PV:Page View

        UV: User View;独立的用户浏览量

        IP:独立的IP浏览量

    4. DSO

      使用httpd -M显示有(shared)的模块都可以使用LoadModule实现动态装载;/etc/httpd/conf.modules.d/*.conf

      配置指定实现模块加载:LoadModule <mod_name> <mod_path>

      模块文件路径可使用相对路径:相对于ServerRoot(默认/etc/httpd)

    5. 定义’Main’ server的文档页面路径

      ServerName     此处的名字主要是用来标识主机认为自己是服务于谁的;跟真正的主机名没关机;若没有定义会反解IP地址
              语法格式: ServerName [scheme://]fully-qualified-domain-name[:port]    
      
       DocumentRoot  ""  
           文档路径映射:
               DoucmentRoot指向的路径为URL路径的起始位置;其相当于站点URL的根路径;
               URL PATH与FileSystem PATH不是等同的,而是存在一种映射关系;
               URL /  --> FileSystem /var/www/html/
               /images/logo.jpg --> /var/www/html/images/logo.jpg
    6. 站点访问控制常见机制

      可基于两种机制指明对哪些资源进行何种访问控制

      • 文件系统路径:

        如果是针对于一个目录下的所有资源进行控制:
        
          <Directory  "">    
          ...
          </Directory>
        
        如果是针对于一个文件或一组文件:
        
          <File  "">
          ...
          </File>
        
          <FileMatch  "PATTERN">
          ...
          </FileMatch>
      • URL路径:

        <Location  "">
          ...
          </Location>
        
          <LocationMatch "PATTERN">
          ...
          </LocationMatch>
      • <Directory>中“基于源地址”实现访问控制:

        • 控制页面资源允许、拒绝指定的主机:

          • httpd-2.2:order和allow、deny

            order:定义allow、deny的生效次序;写在后面的表示默认法则;

            Allow from IP|NetAddr | Deny from IP|NetAddr

            NetAddr格式:

            172.16

            172.16.0.0

            172.16.0.0/16

            172.16.0.0/255.255.0.0

          • httpd-2.4:

            基于IP控制:

            Require ip IP地址或网络地址

            Require not ip IP地址或网络地址

            基于主机名控制:

            Require host 主机名或域名

            Require not host 主机名或域名

            要放置于<RequireAll>配置块中或<RequireAny>配置块中;

        • 控制页面资源允许所有来源的主机可访问:

          httpd-2.2
                <Directory "">
                    ...
                    Order allow,deny
                    Allow from all 
                </Directory>
          
            httpd-2.4
                <Directory "">
                    ...
                    Require all granted
                </Directory>
        • 控制页面资源拒绝所有来源的主机可访问:

          httpd-2.2
                <Directory "">
                    ...
                    Order allow,deny
                    Deny from all 
                </Directory>
          
            httpd-2.4
                <Directory "">
                    ...
                    Require all denied
                </Directory>
        • Options:定义特定目录下的资源如何被访问;后跟1个或多个以空白字符分隔的“选项”列表;

          可用选项:
          
          Indexes:允许索引;指明的URL路径下不存在与定义的主页面资源相符的资源文件时,返回索引列表给用户;取消后,给出路径可以查看,没有路径不支持查看;
          FollowSymLinks:允许跟踪符号链接文件所指向的源文件;
          None:什么都不允许;
          All:除了MultiViews之外的所有选项;
    7. 定义站点主页面:

      DirectoryIndex index.html index.html.var

    8. 定义路径别名

      格式:Alias /URL/ “/PATH/TO/SOMEDIR/”

    9. 设定默认字符集

      AddDefaultCharset UTF-8

      中文字符集:GBK, GB2312, GB18030

    10. 日志设定

      日志类型:访问日志 和 错误日志

      • 错误日志:

        配置文件/etc/httpd/conf/httpd.conf中:ErrorLog “logs/error_log”

        日志文件:/etc/httpd/logs/error_log

      • 访问日志:

        /etc/httpd/conf/httpd.conf中的格式:
        
          LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
          CustomLog  logs/access_log  combined
        
              %h:客户端IP地址;
              %l:Remote User, 通常为一个减号(“-”);
              %u:Remote user (from auth; may be bogus if return status (%s) is 401);非为登录访问时,其为一个减号;
              %t:服务器收到请求时的时间;
              %r:First line of request,即表示请求报文的首行;记录了此次请求的“方法”,“URL”以及协议版本;
              %>s:响应状态码;
              %b:响应报文的大小,单位是字节;不包括响应报文的http首部;
              %{Referer}i:请求报文中首部“referer”的值;即从哪个页面中的超链接跳转至当前页面的;
              %{User-Agent}i:请求报文中首部“User-Agent”的值;即发出请求的应用程序;
    11. 基于用户的访问控制

      • 认证质询:
        WWW-Authenticate:响应码为401,拒绝客户端请求,并说明要求客户端提供账号和密码;
      • 认证:

        Authorization:客户端用户填入账号和密码后再次发送请求报文;认证通过时,则服务器发送响应的资源;

        认证方式有两种:

        basic:明文

        digest:消息摘要认证比较老的浏览器不一定适用

      • 安全域:需要用户认证后方能访问的路径;应该通过名称对其进行标识,以便于告知用户认证的原因;

      • 用户的账号和密码存放于何处?

        虚拟账号:仅用于访问某服务时用到的认证标识

        • 文本文件;

          SQL数据库;

          ldap目录存储;

      • basic认证配置示例:

        1. 定义安全域

          <Directory "">
           Options None
           AllowOverride None
           AuthType Basic
           AuthName "String“
           AuthUserFile  "/PATH/TO/HTTPD_USER_PASSWD_FILE"
           Require  user  username1  username2 ...
          </Directory>

          允许账号文件中的所有用户登录访问:Require valid-user

        2. 提供账号和密码存储(文本文件)

          使用专用命令完成此类文件的创建及用户管理

          htpasswd [options] /PATH/TO/HTTPD_PASSWD_FILE username

          -c:自动创建此处指定的文件,因此,仅应该在此文件不存在时使用;

          -m:md5格式加密

          -s: sha格式加密

          -D:删除指定用户

          -b:批模式添加用户

          htpasswd -b [options] /PATH/TO/HTTPD_PASSWD_FILE username password

        3. 另外:基于组账号进行认证;

          • 定义安全域
            <Directory "">
              Options None
              AllowOverride None
              AuthType Basic
              AuthName "String“
              AuthUserFile  "/PATH/TO/HTTPD_USER_PASSWD_FILE"
              AuthGroupFile "/PATH/TO/HTTPD_GROUP_FILE"
              Require  group  grpname1  grpname2 ...
            </Directory>
          • 创建用户账号和组账号文件;
            组文件:每一行定义一个组
            GRP_NAME: username1 username2 …
    12. 虚拟主机

      • 站点标识: socket

        • IP相同,但端口不同;

          IP不同,但端口均为默认端口;

          FQDN不同;请求报文首部中的Host: www.magedu.com

      • 有三种实现方案:

        基于ip:为每个虚拟主机准备至少一个ip地址;

        基于port:为每个虚拟主机使用至少一个独立的port;

        基于FQDN:为每个虚拟主机使用至少一个FQDN;

        注意(专用于httpd-2.2):一般虚拟机不要与中心主机混用;因此,要使用虚拟主机,得先禁用’main’主机;

        禁用方法:注释中心主机的DocumentRoot指令即可;

      • 虚拟主机的配置方法:三种方案可以混用

        <VirtualHost  IP:PORT>
          ServerName FQDN
          DocumentRoot  ""
        </VirtualHost>

        适用于中心主机的指令同样适用于虚拟主机:

        ServerAlias:虚拟主机的别名;可多次使用;
        ErrorLog:
        CustomLog:
        <Directory "">
        ...
        </Directory>
        Alias
        ...
      • 基于IP的虚拟主机示例:

        <VirtualHost 172.16.100.6:80>
              ServerName www.a.com
              DocumentRoot "/www/a.com/htdocs"
          </VirtualHost>
        
          <VirtualHost 172.16.100.7:80>
              ServerName www.b.net
              DocumentRoot "/www/b.net/htdocs"
          </VirtualHost>
        
          <VirtualHost 172.16.100.8:80>
              ServerName www.c.org
              DocumentRoot "/www/c.org/htdocs"
          </VirtualHost>
      • 基于端口的虚拟主机:

        <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>
      • 基于FQDN的虚拟主机:

        <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-2.2,则使用基于FQDN的虚拟主机时,需要事先使用指令:NameVirtualHost IP:PORT

    13. status

      查看是否装载:httpd -M | grep status

      状态路径:/etc/httpd/conf.modules.d/00-base.conf

      装载模块:LoadModule status_module modules/mod_status.so

      httpd-2.2
      
      <Location /server-status>
          SetHandler server-status
          Order allow,deny
          Allow from 172.16
      </Location>
      httpd-2.4
      
      <Location /server-status>
          SetHandler server-status
          <RequireAll>
              Require ip 172.16
          </RequireAll>
      </Location>
    14. curl命令

      • curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE及LDAP等协议。curl支持HTTPS认证,并且支持HTTP的POST、PUT等方法, FTP上传, kerberos认证,HTTP上传,代理服务器, cookies, 用户名/密码认证, 下载文件断点续传,上载文件断点续传, http代理服务器管道( proxy tunneling), 甚至它还支持IPv6, socks5代理服务器,,通过http代理服务器上传文件到FTP服务器等等,功能十分强大。

      • curl [options…]

        curl的常用选项:

        • -A/–user-agent

          设置用户代理发送给服务器

          –basic 使用HTTP基本认证

          –tcp-nodelay 使用TCP_NODELAY选项

          -e/–referer

          来源网址
          –cacert

          CA证书 (SSL)

          –compressed 要求服务端返回是压缩的格式,仅仅只是传输过程中的压缩,但客户端也可接收压缩格式;

          -H/–header

          自定义首部信息传递给服务器

          -I/–head 只显示响应报文首部信息

          –limit-rate

          设置传输速度
          -u/–user

          设置服务器的用户和密码

          -0/–http1.0 使用HTTP 1.0

      • elinks命令

        elinks [OPTION]… [URL]…

        -dump: 不进入交互式模式,而直接将URL的内容输出至标准输出;

    15. user/group

      指定以哪个用户的身份运行httpd服务进程(子进程或线程);

      /etc/httpd/conf/httpd.conf
      
      User apache
      Group apache

      当某个服务需要使用管理员的身份运行时,可以切换身份:SUexec机制

    16. 使用mod_deflate模块压缩页面优化传输速度

      • 适用场景:

        (1) 节约带宽,额外消耗CPU;同时,可能有些较老浏览器不支持;

        (2) 压缩适于压缩的资源,例如文件文件;

        首先确认mod_deflate模块是启用的:~]# httpd -M | grep deflate
        
          设置输出过滤器
          SetOutputFilter DEFLATE  
        
          # mod_deflate configuration
        
          # Restrict compression to these MIME types
          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)
          DeflateCompressionLevel 9
        
          # Netscape 4.x has some problems.
          BrowserMatch ^Mozilla/4  gzip-only-text/html
        
          # Netscape 4.06-4.08 have some more problems
          BrowserMatch  ^Mozilla/4\.0[678]  no-gzip
        
          # MSIE masquerades as Netscape, but it is fine
          BrowserMatch \bMSI[E]  !no-gzip !gzip-only-text/html
    17. https(http over ssl)

      1. 先是TCP的三次握手
      2. ssl协议握手,建立ssl会话
      3. 进行ssl会话
      4. 断开连接,进行tcp的四次挥手;

        • SSL会话的简化过程

          1. 客户端发送可供选择的加密方式,并向服务器请求证书;
          2. 服务器端发送证书以及选定的加密方式给客户端;
          3. 客户端取得证书并进行证书验正:
            • 如果信任给其发证书的CA:

              (a) 验正证书来源的合法性;用CA的公钥解密证书上数字签名;

              (b) 验正证书的内容的合法性:完整性验正

              (c) 检查证书的有效期限;

              (d) 检查证书是否被吊销;

              (e) 证书中拥有者的名字,与访问的目标主机要一致;

          4. 客户端生成临时会话密钥(对称密钥),并使用服务器端的公钥加密此数据发送给服务器,完成密钥交换;
          5. 服务用此密钥加密用户请求的资源,响应给客户端;

          注意:SSL会话是基于IP地址创建;所以单IP的主机上,仅可以使用一个https虚拟主机;

      • 配置httpd支持https:

        (1) 为服务器申请数字证书;
              测试:通过私建CA发证书
                  (a) 创建私有CA
                  (b) 在服务器创建证书签署请求
                  (c) CA签证
        
          (2) 配置httpd支持使用ssl,及使用的证书;
              # yum -y install mod_ssl
              配置文件:/etc/httpd/conf.d/ssl.conf
                  DocumentRoot
                  ServerName
                  SSLCertificateFile
                  SSLCertificateKeyFile
        
          (3) 测试基于https访问相应的主机;
              # openssl  s_client  [-connect host:port] [-cert filename] [-CApath directory] [-CAfile filename]
    18. httpd自带的 工具 程序

      • htpasswd:basic认证基于文件实现时,用到的账号密码文件生成工具;
      • apachectl:httpd自带的服务控制脚本,支持start和stop;
      • apxs:由httpd-devel包提供,扩展httpd使用第三方模块的工具;
      • rotatelogs:日志滚动工具;在时间、空间上控制
        第一轮:access.log  
        第二轮:            access.log, access.1.log
        第三轮:                          access.log, acccess.1.log, access.2.log
      • suexec:访问某些有特殊权限配置的资源时,临时切换至指定用户身份运行;
    19. httpd的压力测试工具

      命令行:ab, webbench, http_load, seige

      图形化:jmeter, loadrunner

      tcpcopy:网易开发,复制生产环境中的真实请求,并将之保存下来;

      ab [OPTIONS] URL

      -n:总请求数;

      -c:模拟的并行数;

      -k:以持久连接模式 测试;

httpd-2.4:

  • 新特性:

    (1) MPM支持运行为DSO机制;以模块形式按需加载;

    (2) event MPM生产环境可用;

    (3) 异步读写机制;

    (4) 支持每模块及每目录的单独日志级别定义;

    (5) 每请求相关的专用配置;

    (6) 增强版的表达式分析式;

    (7) 毫秒级持久连接时长定义;

    (8) 基于FQDN的虚拟主机也不再需要NameVirutalHost指令;

    (9) 新指令,AllowOverrideList;

    (10) 支持用户自定义变量;

    (11) 更低的内存消耗;

  • 新模块:

    (1) mod_proxy_fcgi

    (2) mod_proxy_scgi

    (3) mod_remoteip

  • 安装httpd-2.4

    依赖于apr-1.4+, apr-util-1.4+, [apr-iconv]

    apr: apache portable runtime

    • CentOS 6:

      • 默认:apr-1.3.9, apr-util-1.3.9

      • 开发环境包组:Development Tools, Server Platform Development

        开发程序包:pcre-devel

      • 编译安装步骤:

        (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
        
          自带的服务控制脚本:apachectl
    • CentOS 7:

      • ~]# yum install httpd

      • 配置文件:

        /etc/httpd/conf/httpd.conf
        /etc/httpd/conf.modules.d/*.conf
        /etc/httpd/conf.d/*.conf
      • 配置应用:

        1. 切换使用的MPM
          编辑配置文件/etc/httpd/conf.modules.d/00-mpm.conf,启用要启用的MPM相关的LoadModule指令即可。
        2. 基于IP的访问控制

          允许所有主机访问:Require  all  granted
          拒绝所有主机访问:Require  all  deny
          
          控制特定的IP访问:
           Require  ip  IPADDR:授权指定来源的IP访问;
           Require  not  ip  IPADDR:拒绝
          
          控制特定的主机访问:
           Require  host  HOSTNAME:授权指定来源的主机访问;
           Require  not  host  HOSTNAME:拒绝
          
           HOSTNAME:
               FQDN:特定主机
               domin.tld:指定域名下的所有主机
          
          <RequireAll>
           Require all granted
           Require not ip 172.16.100.2
          </RequireAll>
        3. 虚拟主机

          基于FQDN的虚拟主机也不再需要NameVirutalHost指令;
          
          <VirtualHost *:80>
           ServerName www.b.net
           DocumentRoot "/apps/b.net/htdocs"
           <Directory "/apps/b.net/htdocs">
               Options None
               AllowOverride None
               Require all granted
           </Directory>
          </VirtualHost>    
          
          注意:任意目录下的页面只有显式授权才能被访问;
        4. ssl

        5. KeepAliveTimeout #ms

          毫秒级持久连接时长定义;


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

思考,快与慢

思考,快与慢

[美] 丹尼尔·卡尼曼 / 胡晓姣、李爱民、何梦莹 / 中信出版社 / 2012-7 / 69.00元

《纽约时报》2011年度十大好书 新书上市,连续20多周蝉联亚马逊、《纽约时报》畅销书排行榜前20名,上市至今超过7个月,横扫全球各大畅销书排行榜,稳居亚马逊总榜前50名 《经济学人》、《华尔街日报》、《卫报》、《纽约时报》、《金融时报》、《商业周刊》、《华盛顿邮报》、等国外权威媒体,《三联生活周刊》、《商学院》、《东方早报》等国内知名媒体争相报道,国内外读者好评如潮 人类究竟有......一起来看看 《思考,快与慢》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具