<-
Apache > HTTP 伺服器 > 文件 > 版本 2.4

Apache HTTP 伺服器 2.2 中的新功能概觀

可用語言:  en  |  fr  |  ko  |  pt-br  |  tr 

本文描述 Apache HTTP 伺服器版本 2.0 和 2.2 之間的一些主要變更。有關自版本 1.3 以來的新功能,請參閱 2.0 新功能 文件。

Support Apache!

另請參閱

top

核心增強功能

Authn/Authz
已將綑綁的驗證和授權模組重新編排。新的 mod_authn_alias(已從 2.3/2.4 中移除)模組可以大幅簡化某些驗證設定。請參閱 模組名稱變更開發人員變更,以取得有關這些變更如何影響使用者和模組撰寫者的更多資訊。
快取
mod_cachemod_cache_disk和 mod_mem_cache(已從 2.3/2.4 中移除)已歷經許多變更,現在被視為生產品質。htcacheclean 已被引入,用於清理 mod_cache_disk 設定。
設定
預設設定配置已被簡化和模組化。可供用於啟用常用功能的設定片段現已與 Apache 綑綁,並可輕鬆新增至主伺服器設定。
正常停止
preforkworkerevent MPM 現已允許 httpd 透過 graceful-stop 訊號正常關閉。已新增 GracefulShutdownTimeout 指令,用於指定可選擇的逾時時限,在此時限後,無論正在服務的任何要求狀態為何,httpd 都將終止。
代理
新的 mod_proxy_balancer 模組提供 mod_proxy 的負載平衡服務。新的 mod_proxy_ajp 模組新增支援由 Apache Tomcat 使用的 Apache JServ Protocol version 1.3
正則表示式函式庫更新
現在包括 Perl Compatible Regular Expression Library (PCRE) 的 5.0 版。可以設定 httpd 使用 PCRE 的系統安裝,方法是傳遞 --with-pcre 旗標給設定檔。
智慧型過濾
mod_filter 為輸出過濾器鏈引入動態設定檔。它讓過濾器能夠基於任何要求或回應標頭或環境變數進行有條件插入,並放棄 2.0 架構中較為棘手的相依性及排序問題。
大檔案支援
httpd 現在建置支援在現代 32 位元 Unix 系統上大於 2GB 的檔案。也已新增支援處理大於 2GB 的要求主體。
事件 MPM
event MPM 使用一組不同的執行緒來處理維持連線的要求和接受連線。維持連線要求傳統上需要 httpd 專門指派一個工作模組來處理。在到達維持連線逾時之前,無法再次使用這個專門指派的工作模組。
SQL 資料庫支援
mod_dbd 搭配 apr_dbd 架構,為需要它的模組帶來直接的 SQL 支援。支援在執行緒 MPM 中建立連線池。
top

模組強效功能

Authn/Authz
aaa 目錄中的模組已重新命名,並提供更佳的摘要驗證支援。例如,mod_auth 現在分割成 mod_auth_basicmod_authn_filemod_auth_dbm 現在稱為 mod_authn_dbmmod_access 已重新命名為 mod_authz_host。也有新的 mod_authn_alias 模組(已從 2.3/2.4 移出)用於簡化某些驗證設定檔。
mod_authnz_ldap
這個模組是 2.0 mod_auth_ldap 模組移轉到 2.2 Authn/Authz 架構。新功能包括在 Require 指令中使用 LDAP 屬性值和複雜的搜尋過濾器。
mod_authz_owner
一個新模組,根據檔案系統上檔案的所有者來授權存取檔案
mod_version
一個新模組,根據執行中伺服器的版本編號來啟用設定檔區塊。
mod_info
新增一個新的 ?config 參數,它會顯示由 Apache 分析的設定指令,包括其檔案名稱和行號。此模組也會顯示所有請求掛鉤和其他建置資訊的順序,類似於 httpd -V
mod_ssl
新增支援 RFC 2817,用於容許連結從明文升級至 TLS 加密。
mod_imagemap
mod_imap 已重新命名為 mod_imagemap 以避免使用者混淆。
top

程式功能強化

httpd
新增一個新的命令列選項 -M,列出所有根據目前設定載入的模組。與 -l 選項不同,此清單包括透過 mod_so 載入的 DSO。
httxt2dbm
一個可從文字輸入產生 dbm 檔案的新程式,供 RewriteMap 使用,其 dbm 地圖類型。
top

模組開發人員變更

APR 1.0 API
Apache 2.2 使用 APR 1.0 API。所有已棄用的函數和符號均已從 APRAPR-Util 中移除。詳情請參閱 APR 網站
Authn/Authz
已重新命名隨附的驗證和授權模組,如下所示:
  • mod_auth_* -> 實作 HTTP 驗證機制的模組
  • mod_authn_* -> 提供後端驗證提供程式的模組
  • mod_authz_* -> 實作授權(或存取)的模組
  • mod_authnz_* -> 實作驗證和授權的模組
有一個新的驗證後端提供器架構,能大幅簡化建立新驗證後端的程序。
連線錯誤記錄
新增一個新的函數 ap_log_cerror,用於記錄在客戶端連線中發生的錯誤。記錄時,訊息中包含客戶端 IP 地址。
新增測試設定掛鉤
新增一個新的掛鉤 test_config,用於協助模組,它們只有在使用者將 -t 傳遞給 httpd 時,才會執行特殊程式碼。
設定執行緒 MPM 的堆疊大小
新增一個新的指令 ThreadStackSize,用於設定所有執行緒 MPM 的堆疊大小。對於那些使用小型預設執行緒堆疊大小的平台上的第三方模組而言,這是必要的。
處理輸出過濾器的通訊協定
以前,每個過濾器負責確保其產生所影響的正確回應標頭。過濾器現在可以使用 ap_register_output_filter_protocolap_filter_protocol 呼叫,將常見的通訊協定管理委派給 mod_filter
新增監視器掛鉤
監視器掛鉤使模組可以在父 (根) 程序中執行常規/排程工作。
正規表示式 API 變更
pcreposix.h 標頭不再可用;它已被新的 ap_regex.h 標頭取代。舊標頭公開的 POSIX.2 regex.h 實作現在可以在 ap_regex.h 中看到 ap_ 名稱空間。呼叫 regcompregexec 等等可以替換為呼叫 ap_regcompap_regexec
DBD 架構 (SQL 資料庫 API)

使用 Apache 1.x 和 2.0,需要 SQL 後端的模組必須自行承擔管理責任。除了重新發明輪子,這可能會非常沒有效率,例如當幾個模組各自維護自己的連線時。

Apache 2.1 及後續版本提供 ap_dbd API 來管理資料庫連線(包括針對有執行緒和無執行緒 MPM 的最佳化策略),而 APR 1.2 及後續版本提供 apr_dbd API 來與資料庫互動。

新模組現在應對所有 SQL 資料庫作業使用這些 API。現有的應用程式應升級為使用它(如果可行),對其使用者來說可能是透明地或作為建議選項。

可用語言:  en  |  fr  |  ko  |  pt-br  |  tr 

top

意見

通知
這不是問答部分。放在此處的留言應指向改善文件或伺服器的建議,如果它們已被實作或被視為無效/離題,可能會被我們的版主移除。有關如何管理 Apache HTTP Server 的問題應轉到我們的 IRC 頻道 #httpd,在 Libera.chat 上,或傳送給我們的 郵寄清單