首页运营教程Apache服务是什么

Apache服务是什么

2025-01-30 70

pacheHTTPServer(简称Apache)是Apache软件基金会推出的一款开源网页服务器,能够在大多数计算机操作系统上运行。因其跨平台性和安全性,Apache被广泛应用,是最流行的Web服务器端软件之一。它具有快速、可靠的特点,并且可以通过简单的API进行扩展,能将Perl/Python等解释器编译到服务器中。

一、Apache使用版本

1、version:2.4(Current)

2、version:2.2(Historical)

3、version:2.0(Historical)

4、version:1.3(Historical)

二、Apache 2.4介绍

1、核心增强功能

  • 运行时可加载的MPM:现在可以构建多个多处理模块(MPM)作为编译时的可加载模块,所选的MPM能在运行时通过指令进行配置;
  • 事件MPM:MPM事件不再是实验性的,而是完全受支持;
  • 异步支持:更好地支持异步读/写,以支持MPM和平台;
  • 每个模块和每个目录的日志级别配置:现在可以按模块和目录进行配置,日志级别新增了trace1、trace8、debug等;
  • 每个请求的配置部分:可以使用<If>、<ElseIf>和<Else>部分,根据每个请求设置配置标准;
  • 通用表达式解析器:新的表达式解析器允许使用通用语法指定复杂条件,如在SetEnvIfExpr、RewriteCond、Header、<If>等指令中;
  • 保持活动超时(以毫秒为单位):现在可以以毫秒为单位指定KeepAliveTimeout;
  • 名称虚拟主机指令:不再需要,现已弃用;
  • 覆盖配置:新的AllowOverrideList指令允许更细粒度地控制哪些指令在.htaccess文件中是允许的;
  • 配置文件变量:现在可以在配置中对变量进行定义,使得如果在配置中的许多位置使用相同的值时,可以更清晰地表示。

2、新模块

  • mod_proxy_fcgi:快速CGI协议后端;
  • mod_proxy_scgi:SCGI协议后端;
  • mod_proxy_express:提供动态配置的批量反向代理;
  • mod_remoteip:替换请求的明显客户端远程IP地址和主机名,IP地址列表由代理或负载均衡器通过请求标头提供;
  • mod_heartmonitor、mod_lbmethod_heartbeat:允许基于后端服务器上的活动连接数进行负载平衡决策;
  • mod_proxy_html:以前是第三方模块,支持修复HTML反向代理情况下的链接,其中后端生成对代理客户端无效的URL;
  • mod_sed:高级替换,允许以编辑具有SED全部功能的响应正文;
  • mod_substitute、mod_auth_form:启用基于表单的身份验证;
  • mod_session:允许使用cookie或数据库存储;
  • mod_allowmethods:新模块限制某些HTTP方法而不干扰身份验证或授权;
  • mod_lua:将Lua语言嵌入到httpd中,用于配置和小型业务逻辑功能(实验性);
  • mod_log_debug:允许在请求处理中进行调试;
  • mod_buffer:用于缓冲输入和输出滤波器堆栈;
  • mod_data:将响应正文转换为RFC2397数据URL;
  • mod_ratelimit:为客户端提供带宽速率限制;
  • mod_request:提供过滤器来处理和提供HTTP请求正文;
  • mod_reflector:通过输出滤波器堆栈提供请求正文的反射作为响应;
  • mod_slotmem_shm:提供基于插槽的共享内存提供程序(即记分板);
  • mod_xml2enc:以前是第三方模块,支持基于libxml2(标记感知)过滤器模块中的国际化;
  • mod_macro(自2.4.5起可用):在配置文件中提供宏;
  • mod_proxy_wstunnel(自2.4.5起可用):支持网络套接字;
  • mod_authnz_fcgi(自2.4.10起可用):使FastCGI授权方应用程序能够进行身份验证和/或授权客户端;
  • mod_http2(自2.4.17起可用):支持HTTP/2传输层;
  • mod_proxy_http2(自2.4.19起可用):HTTP/2协议后端;
  • mod_proxy_hcheck(自2.4.21起可用):支持对远程代理后端服务器进行独立的动态健康检查;
  • mod_brotli(自2.4.26起可用):支持Brotli压缩算法;
  • mod_md(自2.4.30起可用):支持ACME协议以自动执行证书预配;
  • mod_proxy_uwsgi(自2.4.30起可用):UWSGI网关模块;
  • mod_socache_redis(自2.4.39起可用):支持基于Redis的共享对象缓存提供程序;
  • mod_systemd(自2.4.42起可用):系统集成,允许在与systemd一起使用httpd的服务中使用Type=notify。

3、模块增强功能

  • mod_ssl:现在可以配置为使用OCSP服务器检查客户端验证状态,默认响应程序可配置,并且可以决定是否选择客户端证书中指定的响应者。现在还支持OCSP装订,服务器主动获取其证书的OCSP验证,并在握手期间将其传输到客户端。现在可以配置为通过memcached在服务器之间共享SSL会话,除了RSA和DSA之外,现在还支持EC密钥,支持TLS-SRP(在2.4.4及更高版本中可用);
  • mod_proxy:ProxyPassLocation、LocationMatch指令现在在AorBlock中配置最优化,与传统的双参数语法相比具有显著的性能优势。现在可以配置用于代理请求的源地址,支持后端的Unix域套接字(在2.4.7及更高版本中可用);
  • mod_proxy_balancer:通过平衡器管理器可以对平衡器成员进行更多运行时配置更改,可以在运行时添加其他平衡器成员,支持平衡器参数子集的运行时配置,平衡器成员可以设置为“排出”,以便它们仅响应现有的粘性会话,允许它们正常脱机。重启后,平衡器设置可以保留;
  • mod_cache:可以选择在筛选器链中的给定点插入缓存过滤器,以提供对缓存的精细控制。现在可以缓存HEAD请求,可以按目录设置指令,而不是按服务器设置。可以自定义缓存URL的基本URL,以便缓存可以共享相同的终结点URL前缀。现在能够在后端不可用时提供过时的缓存数据(错误5xx),可以将命中/未命中/重新验证插入X-Cache标头;
  • mod_include:支持“include”元素中的“onerror”属性,允许在错误时提供错误文档,而不是默认文档错误字符串;
  • mod_cgi、mod_include、mod_isapi:将标头转换为环境变量时比之前缓解了一些可能的跨站点脚本攻击。包含无效字符(包括下划线)的标题名称不再转换为环境变量。对于需要此类标头的客户端,在Apache中有一些关于如何解决破碎遗产的指示(这会影响所有使用这些环境变量的模块);
  • mod_authz_core:授权逻辑容器现在可以使用Require、<RequireAll>等指令指定高级授权逻辑以及相关的容器指令;
  • mod_rewrite:添加了[QSD](查询字符串丢弃)和[END]标志,简化常见的重写方案。RewriteRule添加了使用复杂布尔表达式的可能性,RewriteCond允许将SQL查询用作函数;
  • mod_ldap、mod_authnz_ldap:mod_authnz_ldap添加对嵌套组的支持。mod_ldap添加了LDAPConnectionPoolTTL、LDAPTimeout处理超时的其他改进,这对于有状态防火墙会断开与LDAP服务器的空闲连接的设置特别有用。mod_ldap添加了到日志使用的LDAP工具包提供的调试信息;
  • mod_info:现在可以在服务器启动期间将预解析的配置转储到标准输出;
  • mod_auth_basic:在2.4.5及更高版本中有伪造基本身份验证的新通用机制。

4、程序功能增强

  • fcgistarter:新的快速CGI守护程序启动器实用程序;
  • htcacheclean:现在可以列出当前缓存的URL以及可选的元数据,包括文件大小。现在可以将文件大小四舍五入到给定的块大小,使大小限制更接近磁盘上的实际大小。缓存大小现在可以由索引节点的数量限制,而不是或除了受文件大小的限制之外磁盘;
  • rotatelogs:现在可以创建指向当前日志文件的链接,可以调用自定义轮换后脚本;
  • htpasswd、htdbm:支持bcrypt算法(在2.4.4及更高版本中可用)。

5、文档

  • mod_rewrite:文档已重新排列并几乎完全重写,重点是示例和常见用法,以及向展示其他解决方案更合适的时候。重写指南现在是一个顶级部分,其中包含更多详细信息和更好的组织;
  • mod_ssl:文档已经大大增强,在入门级别提供了更多示例,除了之前对技术细节的关注;
  • 缓存指南:已被重写,正确区分RFC2616HTTP/1.1缓存提供的功能和通用SOCACHE接口提供的键/值缓存,以及涵盖mod_cache、mod_file_cache等机制。

6、模块开发人员更改

  • 检查配置挂钩已添加:添加了一个新的check_config,它在pre_config和open_logs之间运行。当选项传递给thttpd时,它也在之前运行。允许模块查看相互依赖的配置指令值并调整它们,同时消息仍然可以记录到控制台。因此,用户可以在corehook函数重定向控制台输出到错误日志之前收到配置错误问题的警报;
  • 添加了表达式解析器:现在有一个通用表达式解析器,其API暴露在ap_expr.h中。这是改编自以前在mod_ssl中实现的表达式解析器;
  • 授权逻辑容器:授权模块现在通过ap_register_auth_provider()注册为提供程序,以支持高级授权逻辑,如<RequireAll>;
  • 小对象缓存接口:ap_socache.h标头公开了基于提供程序的用于缓存小型数据对象的接口,基于前面的会话缓存的实现。使用共享内存循环缓冲区、基于磁盘的dbm文件和memcache分布式缓存当前是支持的;
  • 添加了缓存状态挂钩:mod_cache模块现在包含一个新钩子,在缓存决定变得众所周知时调用。提供默认实现,会向响应添加一个可选标头。开发人员文档包含API更改的详细列表。
  • 广告合作

  • QQ群号:707632017

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。

相关文章