httpd2.4特性

httpd-2.4:
    相比httpd2.2新特性:
        (1) MPM支持运行DSO机制;以模块形式按需加载;
        (2) 支持event MPM;
        (3) 支持异步读写;
        (4) 支持每模块及每个目录分别使用各自的日志级别;
        (5) 每请求配置;<If>
        (6) 增强版的表达式分析器;
        (7) 支持毫秒级的keepalive timeout;
        (8) 基于FQDN的虚拟主机不再需要NameVirtualHost指令;
        (9) 支持用户自定义变量;
    新模块:
        (1) mod_proxy_fcgi:快速cgi模块,cgi协议在讲解lamp的博客中有阐述(就是http实现动态网页时,与应用程序交互的一种方式)
        (2) mod_ratelimit:限速使用
        (3) mod_remoteip:远端ip地址控制
    修改了一些配置机制:
        不再支持使用Order, Deny, Allow来做基于IP的访问控制;引入了新方法require


安装httpd-2.4                    
    httpd依赖于apr-1.4+, apr-util-1.4+, [apr-icon]
    apr: apache portable runtime:相当于apache与系统之间的兼容层,实现让同一个httpd软件多平台运行,不用每个平台提供一种程序

CentOS 6:
    centos6默认:apr-1.3.9, apr-util-1.3.9 ------->安装httpd2.4之前需要先安装apr-1.4+,     

    apr-util-1.4+,[apr-icon],否则不兼容,但是尽量不要覆盖原先的1.3版本,会破坏其他程序
编译安装步骤:
    1.4+版的apr和apr-util
    前提:安装开发环境,安装pcre-devel
    (1) apr
    # ./configure --prefix=/usr/local/apr(注意这里不是/usr/local/防止覆盖之前的1.3版本)    

    # make && make install
    (2) apr-util
    # ./configure --prefix=/usr/local/apr-util --with=/usr/local/apr
    # make && make install
    (3) httpd2.4
    # groupadd -r apache
    # useradd -r -g apache apahce
    # ./configure --prefix=/usr/local/apache --sysconf=/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

    --enable-so:支持动态模块加载机制

    --enable-rewrite:只是URL重写

    --with-zlib:压缩算法库

    --with-pcre:perl扩展程序包

    --enable-mpms-shared:支持mpm共享模块机制

    --with-mpm:默认使用哪种mpm

    启动服务:
    apachectl

    启动脚本:复制rpm包安装的httpd程序启动脚本再修改某些参数

wKioL1X-lziTj1_rAACpz3qe8Iw532.jpg

CentOS 7:
    配置文件:
    主配置文件:/etc/httpd/conf/httpd.conf
    模块配置文件:/etc/httpd/conf.modules.d/*.conf
    辅助配置文件:/etc/httpd/conf.d/*.conf
    mpm:以DSO机制提供,配置文件00-mpm.conf
    服务控制:systemctl {start|stop|restart|status|reload} httpd.service
配置:
    (1) 切换使用MPM
    LoadModule mpm_NAME_module modules/mod_mpm_NAME.so
    NAME: prefork, event, worker
    (2) 修改'Main' server的DocumentRoot
    (3) 基于IP的访问控制法则
    允许所有主机访问:Require all granted
    拒绝所有主机访问:Require all deny

    控制特定IP访问:

httpd2.4默认对于定义的网页目录针对所有人不允许访问,需要显式授权 Require all granted

    Require ip IPADDR:授权指定来源地址的主机访问
    Require not ip IPADDR:拒绝指定来源地址的主机访问
    IPADDR指定方式:
        IP: 172.16.100.2
        Network/mask: 172.16.0.0/255.255.0.0
        Network/Length: 172.16.0.0/16
        Net: 172.16
    控制特定主机(HOSTNAME)访问
    Require host HOSTNAME
    Require not host HOSTNAME
    HOSTNAME指定方式:
        FQDN: 特定主机
        DOMAIN:指定域内的所有主机
    示例:

    <RequireAll>
    Require not ip 192.168.3.1  只禁止192.168.3.1访问
    Require all granted
    </RequireAll>

    (4) 虚拟主机
    基于IP、Port和FQDN都支持;
    基于FQDN的不再需要NameVirtualHost指令;
对于centos7,在conf.d目录下创建虚拟主机配置文件来管理虚拟主机,方便管理,httpd.conf主配置文件中已经调用了conf.d下面的所有文件               

    (5) ssl启用模块:
    LoadModule ssl_module modules/mod_ssl.so





你可能感兴趣的:(get,MIME,httpd,mpm,DSO)