Apache HTTP Server 2.2 新特性概述

2021-08-24 17:21 更新

本文檔描述了 Apache HTTP Server 2.0 和 2.2 版本之間的一些主要變化。有關(guān) 1.3 版以來的新功能,請參閱2.0 新功能 文檔。

核心增強

驗證/驗證
捆綁的身份驗證和授權(quán)模塊已重構(gòu)。新的 mod_authn_alias(已從 2.3/2.4 移除)模塊可以大大簡化某些身份驗證配置。有關(guān)這些更改如何影響用戶和模塊編寫者的更多信息,請參閱模塊名稱更改和 開發(fā)人員更改。
緩存
mod_cachemod_cache_disk, 和 mod_mem_cache(已經(jīng)從 2.3/2.4 中刪除)已經(jīng)發(fā)生了很多變化,現(xiàn)在被認為是生產(chǎn)質(zhì)量的。htcacheclean 已被引入清理mod_cache_disk 設(shè)置。
配置
默認配置布局已被簡化和模塊化??捎糜趩⒂贸S霉δ艿呐渲闷维F(xiàn)在與 Apache 捆綁在一起,并且可以輕松添加到主服務(wù)器配置中。
優(yōu)雅的停止
prefork,worker并且 event 最可能模式現(xiàn)在允許httpd 通過將安全關(guān)機 graceful-stop 信號。GracefulShutdownTimeout添加了該指令以指定可選的超時,之后httpd無論正在服務(wù)的任何請求的狀態(tài)如何, 都將終止。
代理
mod_proxy_balancer模塊為mod_proxy. 新mod_proxy_ajp模塊添加了對Apache TomcatApache JServ Protocol version 1.3使用的 支持 。
更新了正則表達式庫
現(xiàn)在包括Perl 兼容正則表達式庫(PCRE) 的5.0 版 。 httpd可以通過傳遞--with-pcre標志來配置使用 PCRE 的系統(tǒng)安裝 。
智能過濾
mod_filter向輸出過濾器鏈引入動態(tài)配置。它允許根據(jù)任何請求或響應(yīng)標頭或環(huán)境變量有條件地插入過濾器,并免除 2.0 架構(gòu)中存在更多問題的依賴項和排序問題。
大文件支持
httpd現(xiàn)在在現(xiàn)代 32 位 Unix 系統(tǒng)上支持大于 2GB 的文件。還添加了對處理 >2GB 請求正文的支持。
事件 MPM
eventMPM使用單獨的線程來處理保持活動的請求和接受連接。Keep Alive 請求傳統(tǒng)上需要 httpd 指定一個工作人員來處理它。在達到 Keep Alive 超時之前,無法再次使用此專用工作器。
SQL 數(shù)據(jù)庫支持
mod_dbdapr_dbd 框架一起為需要它的模塊帶來直接的 SQL 支持。支持線程 MPM 中的連接池。

模塊增強

驗證/驗證
aaa 目錄中的模塊已重命名,并為摘要身份驗證提供更好的支持。例如, mod_auth現(xiàn)在被拆分為 mod_auth_basic和 mod_authn_file;mod_auth_dbm現(xiàn)在被稱為mod_authn_dbmmod_access已更名mod_authz_host。還有一個新的 mod_authn_alias(已從 2.3/2.4 中刪除)模塊,用于簡化某些身份驗證配置。
mod_authnz_ldap
該模塊是 2.0mod_auth_ldap模塊到 2.2Authn/Authz 框架的端口 。新功能包括在Require指令中使用 LDAP 屬性值和復(fù)雜的搜索過濾器 。
mod_authz_owner
一個新的模塊,它根據(jù)文件系統(tǒng)上文件的所有者來授權(quán)訪問文件
mod_version
一個新模塊,允許根據(jù)正在運行的服務(wù)器的版本號啟用配置塊。
mod_info
添加了一個新?config參數(shù),它將顯示 Apache 解析的配置指令,包括它們的文件名和行號。該模塊還顯示了所有請求掛鉤的順序和其他構(gòu)建信息,類似于httpd -V.
mod_ssl
添加了對RFC 2817的支持 ,它允許連接從明文升級到 TLS 加密。
mod_imagemap
mod_imap已重命名為 mod_imagemap以避免用戶混淆。

程序增強

httpd
添加了一個新的命令行選項-M,用于列出基于當前配置加載的所有模塊。與-l選項不同,此列表包括通過mod_so.
httxt2dbm
一項新的計劃用于生成DBM從文本輸入文件,用于RewriteMap 與dbm地圖類型。

頂部

模塊開發(fā)人員更改

APR 1.0 API
Apache 2.2 使用 APR 1.0 API。所有不推薦使用的函數(shù)和符號都已從APR和 中 刪除APR-Util。有關(guān)詳細信息,請參閱 APR 網(wǎng)站。
驗證/驗證
捆綁的身份驗證和授權(quán)模塊已按以下方式重命名:
  • mod_auth_* -> 實現(xiàn) HTTP 身份驗證機制的模塊
  • mod_authn_* -> 提供后端身份驗證提供程序的模塊
  • mod_authz_* -> 實現(xiàn)授權(quán)(或訪問)的模塊
  • mod_authnz_* -> 實現(xiàn)身份驗證和授權(quán)的模塊
有一個新的身份驗證后端提供程序方案,可以極大地簡化新身份驗證后端的構(gòu)建。
連接錯誤記錄
添加了一個新功能ap_log_cerror來記錄客戶端連接發(fā)生的錯誤。記錄時,該消息包括客戶端 IP 地址。
添加了測試配置掛鉤
添加了一個新的鉤子,test_config以幫助模塊只在用戶傳遞 -thttpd.
設(shè)置線程 MPM 的堆棧大小
添加了一個新指令ThreadStackSize來設(shè)置所有線程 MPM 上的堆棧大小。對于具有較小默認線程堆棧大小的平臺上的某些第三方模塊,這是必需的。
輸出過濾器的協(xié)議處理
過去,每個過濾器都負責(zé)確保它在影響它們的地方生成正確的響應(yīng)標頭。過濾器現(xiàn)在可以mod_filter使用 ap_register_output_filter_protocol或 ap_filter_protocol調(diào)用將公共協(xié)議管理委托 給 。
添加了監(jiān)視器鉤子
監(jiān)視器掛鉤使模塊能夠在父(根)進程中運行常規(guī)/計劃作業(yè)。
正則表達式 API 變化
pcreposix.h報頭不再可用; 它被新的ap_regex.h標題取代。該POSIX.2regex.h由舊的頭露出實施是現(xiàn)在下提供ap_從命名空間ap_regex.h。調(diào)用regcompregexec等可以替換為調(diào)用 ap_regcompap_regexec。
DBD 框架(SQL 數(shù)據(jù)庫 API)

對于 Apache 1.x 和 2.0,需要 SQL 后端的模塊必須自己負責(zé)管理它。除了重新發(fā)明輪子之外,這可能非常低效,例如當多個模塊各自維護自己的連接時。

Apache 2.1 及更高版本提供ap_dbd用于管理數(shù)據(jù)庫連接的API(包括針對線程和非線程 MPM 的優(yōu)化策略),而 APR 1.2 及更高版本提供apr_dbd用于與數(shù)據(jù)庫交互的API。

新模塊現(xiàn)在應(yīng)該將這些 API 用于所有 SQL 數(shù)據(jù)庫操作?,F(xiàn)有的應(yīng)用程序應(yīng)該升級以在可行的情況下使用它,無論是透明的還是作為向用戶推薦的選項。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號