Apache HTTP 伺服器版本 2.4
本文描述 Apache HTTP 伺服器版本 2.0 和 2.2 之間的一些主要變更。有關自版本 1.3 以來的新功能,請參閱 2.0 新功能 文件。
mod_cache
、mod_cache_disk
和 mod_mem_cache(已從 2.3/2.4 中移除)已歷經許多變更,現在被視為生產品質。htcacheclean
已被引入,用於清理 mod_cache_disk
設定。prefork
、worker
和 event
MPM 現已允許 httpd
透過 graceful-stop
訊號正常關閉。已新增 GracefulShutdownTimeout
指令,用於指定可選擇的逾時時限,在此時限後,無論正在服務的任何要求狀態為何,httpd
都將終止。mod_proxy_balancer
模組提供 mod_proxy
的負載平衡服務。新的 mod_proxy_ajp
模組新增支援由 Apache Tomcat 使用的 Apache JServ Protocol version 1.3
。httpd
使用 PCRE 的系統安裝,方法是傳遞 --with-pcre
旗標給設定檔。mod_filter
為輸出過濾器鏈引入動態設定檔。它讓過濾器能夠基於任何要求或回應標頭或環境變數進行有條件插入,並放棄 2.0 架構中較為棘手的相依性及排序問題。httpd
現在建置支援在現代 32 位元 Unix 系統上大於 2GB 的檔案。也已新增支援處理大於 2GB 的要求主體。event
MPM 使用一組不同的執行緒來處理維持連線的要求和接受連線。維持連線要求傳統上需要 httpd 專門指派一個工作模組來處理。在到達維持連線逾時之前,無法再次使用這個專門指派的工作模組。mod_dbd
搭配 apr_dbd
架構,為需要它的模組帶來直接的 SQL 支援。支援在執行緒 MPM 中建立連線池。mod_auth
現在分割成 mod_auth_basic
及 mod_authn_file
;mod_auth_dbm
現在稱為 mod_authn_dbm
;mod_access
已重新命名為 mod_authz_host
。也有新的 mod_authn_alias 模組(已從 2.3/2.4 移出)用於簡化某些驗證設定檔。mod_authnz_ldap
mod_auth_ldap
模組移轉到 2.2 Authn/Authz
架構。新功能包括在 Require
指令中使用 LDAP 屬性值和複雜的搜尋過濾器。mod_authz_owner
mod_version
mod_info
?config
參數,它會顯示由 Apache 分析的設定指令,包括其檔案名稱和行號。此模組也會顯示所有請求掛鉤和其他建置資訊的順序,類似於 httpd -V
。mod_ssl
mod_imagemap
mod_imap
已重新命名為 mod_imagemap
以避免使用者混淆。httpd
-M
,列出所有根據目前設定載入的模組。與 -l
選項不同,此清單包括透過 mod_so
載入的 DSO。httxt2dbm
RewriteMap
使用,其 dbm
地圖類型。APR
和 APR-Util
中移除。詳情請參閱 APR 網站。mod_auth_*
-> 實作 HTTP 驗證機制的模組mod_authn_*
-> 提供後端驗證提供程式的模組mod_authz_*
-> 實作授權(或存取)的模組mod_authnz_*
-> 實作驗證和授權的模組ap_log_cerror
,用於記錄在客戶端連線中發生的錯誤。記錄時,訊息中包含客戶端 IP 地址。test_config
,用於協助模組,它們只有在使用者將 -t
傳遞給 httpd
時,才會執行特殊程式碼。ThreadStackSize
,用於設定所有執行緒 MPM 的堆疊大小。對於那些使用小型預設執行緒堆疊大小的平台上的第三方模組而言,這是必要的。ap_register_output_filter_protocol
或 ap_filter_protocol
呼叫,將常見的通訊協定管理委派給 mod_filter
。pcreposix.h
標頭不再可用;它已被新的 ap_regex.h
標頭取代。舊標頭公開的 POSIX.2 regex.h
實作現在可以在 ap_regex.h
中看到 ap_
名稱空間。呼叫 regcomp
、regexec
等等可以替換為呼叫 ap_regcomp
、ap_regexec
。使用 Apache 1.x 和 2.0,需要 SQL 後端的模組必須自行承擔管理責任。除了重新發明輪子,這可能會非常沒有效率,例如當幾個模組各自維護自己的連線時。
Apache 2.1 及後續版本提供 ap_dbd
API 來管理資料庫連線(包括針對有執行緒和無執行緒 MPM 的最佳化策略),而 APR 1.2 及後續版本提供 apr_dbd
API 來與資料庫互動。
新模組現在應對所有 SQL 資料庫作業使用這些 API。現有的應用程式應升級為使用它(如果可行),對其使用者來說可能是透明地或作為建議選項。