apache2.4新特性

ApacheHTTPServer的2.2和2.4版本之间的一些主要更改。有关自2.0版以来的新特性,请参见2.4新特性文件

核心增强

1 运行时可加载MPM
但是要开启这种特性,在编译安装要启用这三种功能:–enable-mpms-shared=all –with-mpm=event

2 Event MPM

Event MPM不再是试验性的,但现在得到了充分的支持。

3 异步支持

更好地支持MPM和平台的异步读写

4 每个模块和每个目录的日志级别配置

LogLevel现在可以在每个模块和每个目录下配置。新水平trace1到trace8已添加到debug日志级别。

5 每个请求配置节

, ,和节可用于根据每个请求条件设置配置。

6 通用表达式解析器

新的表达式解析器允许指定复杂条件在指令中使用公共语法,如SetEnvIfExpr, RewriteCond, Header, 和其他人。

7 KeepAliveTimeout(毫秒)

现在可以指定KeepAliveTimeout以毫秒为单位。

8 不用Virtualhost指令

基于FQDN的虚拟主机不再需要NameVirtualHost指令

9 覆盖配置

新AllowOverrideList指令允许更细粒度的控制,哪些指令允许在.htaccess档案。

11 配置文件变量

现在有可能Define配置中的变量,如果在配置中的许多地方使用相同的值,则允许使用更清晰的表示。

11 减少内存使用量

尽管有许多新特性,但2.4.x往往比2.2.x占用更少的内存。

新模块

mod_proxy_fcgi

    FastCGI协议后端mod_proxy ,提供fcgi代理

mod_proxy_scgi

    SCGI协议后端mod_proxy

mod_proxy_express

    提供动态配置的大规模反向代理。mod_proxy

mod_remoteip

    匹配客户端的IP,将请求的明显客户端远程IP地址和主机名替换为代理或负载均衡器通过请求头提供的IP地址列表。

mod_heartmonitor, mod_lbmethod_heartbeat

    允许mod_proxy_balancer将负载平衡决策建立在后端服务器上活动连接数量的基础上。

mod_proxy_html

    以前是第三方模块,它支持在反向代理情况下修复HTML链接,在这种情况下,后端生成对代理客户端无效的URL。

mod_sed

    先进的替代品mod_substitute,允许使用sed的全部功能编辑响应体。

mod_auth_form

    启用基于表单的身份验证。

mod_session

    启用客户端使用会话状态,使用cookie或数据库存储。

mod_allowmethods

    新模块限制某些HTTP方法而不干扰身份验证或授权。

mod_lua

    把Lua语言转化为httpd,用于配置和小业务逻辑功能。(实验)

mod_log_debug

    允许在请求处理的不同阶段添加可自定义的调试日志记录。

mod_buffer

    提供缓冲输入和输出筛选器堆栈的功能。

mod_data

    将响应体转换为RFC 2397数据URL

mod_ratelimit

    限制用户带宽,为客户端提供带宽限制

mod_request

    过滤客户机请求,提供用于处理HTTP请求主体并使之可用的筛选器

mod_reflector

    通过输出筛选器堆栈提供请求主体的反射作为响应。

mod_slotmem_shm

    提供基于a Slot-based的共享内存提供程序(ala the scoreboard)。

mod_xml2enc

    以前是第三方模块,它支持基于 libxml2-based (markup-aware)过滤模块。

mod_macro(自2.4.5以来提供)

    在配置文件中提供宏。

mod_proxy_wstunnel(自2.4.5以来提供)

    支持网络套接字隧道。

mod_authnz_fcgi(自2.4.10以来提供)

    启用FastCGI授权程序对客户端进行身份验证and/or授权。

mod_http2(自2.4.17以来提供)

    支持HTTP/2传输层。

mod_proxy_hcheck(自2.4.21以来提供)

    支持远程Proxiy后端服务器的独立动态健康检查。

模块增强

mod_ssl

mod_ssl现在可以配置为使用OCSP服务器检查客户端证书的验证状态。默认响应程序是可配置的,以及是否选择客户端证书本身中指定的响应程序的决定。

mod_ssl现在还支持OCSP装订,其中服务器预先主动地获得其证书的OCSP验证,并在握手期间将其发送到客户端。

mod_ssl现在可以配置为通过memcached在服务器之间共享ssl会话数据。

        除了RSA和DSA之外,现在还支持EC密钥。

         对TLS-SRP的支持(见2.4.4及更高版本)。

mod_proxy

         ProxyPass指令中的最优配置在Location或LocationMatch块里面,与传统的双参数语法相比,在大量使用时提供了显著的性能优势。

        代理请求的源地址现在是可配置的。

         对后端Unix域套接字的支持(见2.4.7及更高版本)。

mod_proxy_balancer

         通过平衡器管理器对BalancerMembers进行更多的运行时配置更改

         额外的BalancerMembers可以通过平衡器管理器在运行时添加。

         均衡器参数子集的运行时配置

         BalancerMembers可以被设置为“'Drain',这样它们只能响应现有的粘性会话,允许它们优雅地脱机。

         平衡器设置可以在重新启动后持久。

mod_cache

mod_cache可以选择将CACHE筛选器插入到筛选链中的给定点,以提供对缓存的精细控制。

mod_cache现在可以缓存HEAD请求。

        如果可能的话,mod_cache指令现在可以设置为每个目录,而不是每个服务器。

       缓存URL的基本URL可以自定义,这样缓存集群就可以共享相同的端点URL前缀。

mod_cache现在能够在后端不可用时提供陈旧的缓存数据(error 5xx)。

mod_cache现在可以将HIT/MISS/REVALIDATE插入到X-Cache中。

mod_include

        支持'include'元素中的'onerror'属性,允许在error上提供错误文档,而不是默认的错误字符串。。

mod_cgi, mod_include, mod_isapi, …

        将标头转换为环境变量比以前更加严格,可以通过标头注入减少一些可能的跨站点脚本攻击。包含无效字符(包括下划线)的标头现在被自动删除。Apache中的环境变量有一些关于如何处理损坏的遗留客户机的指针,这些客户机需要这样的报头。(这会影响所有使用这些环境变量的模块。)

mod_authz_core授权逻辑容器

       高级授权逻辑现在可以使用Require指令和相关的容器指令,例如<RequireAll>.

mod_rewrite

mod_rewrite添加[QSD](查询字符串丢弃)和[END]旗RewriteRule以简化常见重写方案。

        添加在rewritsecond中使用复杂布尔表达式的可能性。

        允许将sql查询用作RewriteMap功能。

mod_ldap, mod_authnz_ldap

mod_authnz_ldap添加对嵌套组的支持。

         mod_ldap添加了LDAPConnectionPoolTTL、LDAPTimeout和处理超时的其他改进。这对于有状态防火墙删除到LDAP服务器的空闲连接的设置特别有用。

         mod_ldap添加LDAPLibraryDebug来记录使用的LDAP工具包提供的调试信息

mod_info

 mod_info现在可以在服务器启动期间将预解析的配置转储到stdout。

mod_auth_basic

           伪造基本身份验证的新通用机制(见2.4.5及更高版本)。

程序增强

fcgistarter

      新的FastCGI守护进程启动实用程序

htcacheclean

       现在可以列出当前缓存的URL,并包含可选元数据。

       允许从缓存中显式删除单个缓存URL。

       文件大小现在可以舍入到给定的块大小,使大小限制映射到磁盘上的实际大小。

      缓存大小现在可以由inode的数量来限制,而不是受磁盘上文件大小的限制。

rotatelogs

     现在可以创建指向当前日志文件的链接。

     现在可以调用自定义的旋转后脚本。

htpasswd, htdbm

      对bcrypt算法的支持(见2.4.4及更高版本)。

mod_rewrite

           mod_rewrite文档已经被重新安排,几乎完全重写了,重点是示例和常用用法,以及向您展示其他解决方案何时更合适。重写指南现在是一个具有更多细节和更好组织的顶级部分。

mod_ssl

          mod_ssl除了以前对技术细节的关注之外,文档已经得到了很大的增强,在入门级有了更多的示例。

Caching Guide 缓存指南

         为了正确区分mod_cache提供的RFC2616 HTTP/1.1缓存特性和socache接口提供的通用key/value缓存,以及mod_file_cache等机制提供的专门缓存,我们重写了缓存指南。

添加检查配置Hook

       添加了一个新的钩子check_config,它运行在pre_config和open_logs钩子之间。当-t选项被传递给httpd时,它也在test_config钩子之前运行。check_config钩子允许模块检查相互依赖的配置指令值并对其进行调整,同时消息仍然可以记录到控制台。因此,在核心open_logs hook函数将控制台输出重定向到错误日志之前,可以提醒用户注意错误配置问题。

表达式分析器添加

      我们现在有了一个通用表达式解析器,其API在ap_expr.h中公开。这是从以前在mod_ssl中实现的表达式解析器中改编的

授权逻辑容器

          授权模块现在通过ap_register_auth_provider()注册为提供者,以支持高级授权逻辑,例如<RequireAll>。

小对象缓存接口

         AP_socache.h标头公开了用于缓存小数据对象的基于提供程序的接口,该接口基于mod_ssl会话缓存。当前支持使用共享内存循环缓冲区、基于磁盘的DBM文件和memcache分布式缓存的提供程序.

缓存状态挂钩添加

 mod_cache模块现在包含了一个新的cache_status钩子,当缓存决定被知道时调用这个钩子。提供了一个默认的实现,在响应中添加了一个可选的X-Cache和X-Cache- detail头。

下载地址:http://www.apache.org/dist/httpd/
更新日志:http://www.apache.org/dist/httpd/CHANGES_2.4

赞(1) 打赏
特别声明:除特殊标注,本站文章均为原创,遵循CC BY-NC 3.0,转载请注明出处。三伏磨 » apache2.4新特性

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏