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

Apache HTTP 伺服器 2.4 中新增的功能概述

可用的語言:  en  |  fr  |  tr 

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

Support Apache!

另請參閱

top

核心增強功能

執行期間可載入的 MPM
現在可以在編譯時將多個 MPM 建立為可載入模組。可以在執行期間透過 LoadModule 指令配置適當的 MPM。
事件 MPM
事件 MPM 不再是實驗性質,現已完全支援。
異步支援
更佳支援異步讀取/寫入,以支援 MPM 和平台。
每個模組和每個目錄的 LogLevel 配置
LogLevel 現在可以針對每個模組和每個目錄分別進行配置。trace1trace8 的新層級已新增於 debug 日誌層級之上。
每個請求的配置區段
<If><ElseIf><Else> 區段可用於根據每個請求的準則設定配置。
通用表達式剖析器
新的表達式剖析器允許在指令中使用通用語法指定 複雜條件,例如 SetEnvIfExprRewriteCondHeader<If> 等。
KeepAliveTimeout 以毫秒為單位
現在可以以毫秒為單位指定 KeepAliveTimeout
NameVirtualHost 指令
不再需要,現已棄用。
覆寫配置
新指令 AllowOverrideList 讓您能更精細地控制哪些指令允許在 .htaccess 檔案中使用。
設定檔變數
現在只要使用 Define 指令,就能在設定檔中定義變數,如此一來就能更清楚表達設定檔中多處使用的相同值。
減少記憶體用量
儘管新增許多新功能,2.4.x 仍然比 2.2.x 使用更少的記憶體。
top

新模組

mod_proxy_fcgi
mod_proxy 的 FastCGI 通訊協定後端
mod_proxy_scgi
mod_proxy 的 SCGI 通訊協定後端
mod_proxy_express
mod_proxy 的動態設定大量反向代理提供
mod_remoteip
透過要求標頭將請求的明顯客戶端遠端 IP 位址和主機名稱取代為代理伺服器或負載平衡器所提供的 IP 位址清單。
mod_heartmonitormod_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
將回應本文轉換成 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 協定後端 for mod_proxy
mod_proxy_hcheck(自 2.4.21 版起提供)
支援遠端代理後端伺服器的獨立動態健康檢查。
mod_brotli(自 2.4.26 版起提供)
支援 Brotli 壓縮演算法。
mod_md(自 2.4.30 版起提供)
支援 ACME 協定以自動化憑證準備。
mod_proxy_uwsgi(自 2.4.30 版起提供)
for mod_proxy 的 UWSGI 閘道模組。
mod_socache_redis(自 2.4.39 版起提供)
支援基於 Redis 的共用物件快取提供者。
mod_systemd(自 2.4.42 版起提供)
systemd 整合。它允許 httpd 在具有 systemd Type=notify 的服務中使用。
top

模組強化

mod_ssl
mod_ssl 現在可以設定為使用 OCSP 伺服器來檢查客戶端憑證的驗證狀態。預設回應程式可設定,以及是否偏好於客戶端憑證中指定的那個回應程式。
mod_ssl 現在還支援 OCSP 主動釘選,在此過程中伺服器主動取得其憑證的 OCSP 驗證,並於交握過程中傳輸給客戶端。
mod_ssl 現在可以設定為透過 memcached 在伺服器之間分享 SSL 會話資料
除了 RSA 和 DSA 之外,現在也支援 EC 金鑰。
支援 TLS-SRP(於 2.4.4 和後續版本中提供)。
mod_proxy
ProxyPass 指令現在可以在 LocationLocationMatch 區塊中設定為最合適的狀態,並在大量存在時提供與傳統的雙參數語法相比有顯著效能提升的好處。
現在可以設定用於代理請求的來源位址。
支援到後端的 Unix 域端點(於 2.4.7 和後續版本中提供)。
mod_proxy_balancer
透過 balancer-manager 進行更多 BalancerMembers 的執行時期設定變更
其他 BalancerMembers 可透過 balancer-manager 於執行時期加入
執行時期設定 Balancer 參數的子設定
BalancerMembers 可設定為「清除」,如此一來它們只會回應現有的認證狀態,允許它們從容地離線。
Balancer 設定可在重新啟動後仍然存在。
mod_cache
mod_cache CACHE 過濾器可以選擇性插入在過濾器鏈中的特定位置,以提供控管快取的精細功能。
mod_cache 現在可以快取 HEAD 要求。
在可能的情況下,mod_cache 指令現在可以依照目錄設定,而不是依照伺服器設定。
快取 URL 的基本 URL 可自訂,如此一來快取叢集可以共用同一個端點 URL 字首。
mod_cache 現在可以在後端不可用時 (錯誤 5xx) 提供舊版的快取資料。
mod_cache 現在可以將 HIT/MISS/REVALIDATE 插入 X-Cache 標頭中。
mod_include
支援「include」元素中的「onerror」屬性,允許在發生錯誤時由錯誤文件來提供服務,而不是顯示預設的錯誤字串。
mod_cgimod_includemod_isapi、...
由標頭轉換為環境變數變得比以前更嚴謹,以減輕透過標頭插入攻擊而發動一些可能的跨網站指令碼攻擊。包含無效字元 (包括底線) 的標頭名稱不再轉換成環境變數。Apache 中的环境变量提供了一些關於如何解決需要此類標頭的損壞舊式客戶端的方法。(這會影響使用這些環境變數的所有模組。)
mod_authz_core 授權邏輯容器
現在可以使用 Require 指令和相關容器指令指定進階授權邏輯,例如 <RequireAll>
mod_rewrite
mod_rewriteRewriteRule 新增 [QSD] (Query String Discard) 和 [END] 旗標,以簡化常見的重寫場景。
新增在 RewriteCond 中使用複雜布林運算式的可能性。
允許使用 SQL 查詢做為 RewriteMap 功能。
mod_ldapmod_authnz_ldap
mod_authnz_ldap 新增支援巢狀群組。
mod_ldap增加LDAPConnectionPoolTTLLDAPTimeout,以及其他在處理逾時方面的改善。這對於在 Stateful 防火牆中會中斷與 LDAP 伺服器之間閒置連線的設定特別有用。
mod_ldap增加LDAPLibraryDebug來記錄由已使用的 LDAP 工具包提供的偵錯資訊。
mod_info
mod_info現在可以在伺服器啟動期間將預先剖析的組態傾印在 stdout 中。
mod_auth_basic
新的通用機制可以用來偽造基本驗證(在 2.4.5 及更新版本中提供)。
top

程式增強

fcgistarter
新的 FastCGI 守护程序啟動器公用程式
htcacheclean
現在可以列出目前快取的 URL,並選擇性地包含元資料。
允許明確刪除個體的快取 URL。
檔案大小現在可以進位到指定的區塊大小,使大小限制更貼近於磁碟上的實際大小。
快取大小現在可以透過 inode 數量來限制,可以單獨或與磁碟檔案大小限制搭配使用。
rotatelogs
現在可以建立連結到目前記錄檔。
現在可以呼叫自訂的後續輪動指令碼。
htpasswd, htdbm
支援 bcrypt 演算法(在 2.4.4 及更新版本中提供)。
top

文件

mod_rewrite
mod_rewrite文件已經重新配置且幾乎完全改寫,著重於範例和常見用法,以及告訴您在其他解決方案更合適時的情況。Rewrite 指南現在是包含更多細節和更佳組織的頂層章節。
mod_ssl
mod_ssl文件已獲得大幅強化,除了先前的技術細節重點之外,還增加了更多入門級範例。
快取指南
快取指南已改寫,以適當地區分由mod_cache提供的 RFC2616 HTTP/1.1 快取功能,以及由socache介面提供的通用金鑰/值快取,以及由mod_file_cache等機制提供的特殊快取。
top

模組開發人員的變更

已新增檢查組態掛勾
新增了一個執行於pre_configopen_logs執行緒之間的新執行緒,check_config。當-t選項傳遞至httpd時,它也會在test_config執行緒之前執行。check_config執行緒允許模組檢閱相互依賴的設定指令值,並在訊息仍可記錄至主控台時調整它們。因此,使用者可在核心open_logs執行緒函式將主控台輸出重新導向至錯誤記錄檔之前,收到設定錯誤問題的警告。
新增表示式解析器
我們現在有一個通用表示式解析器,其API公開在ap_expr.h中,這是改編自先前實作於mod_ssl中的表示式解析器。
授權邏輯容器
授權模組現在透過ap_register_auth_provider()註冊為提供者,以支援進階授權邏輯,例如<RequireAll>
小物件快取介面
ap_socache.h標頭公開了基於先前mod_ssl會話快取實作的供應商式介面,用於快取小型資料物件。目前支援使用共享記憶體循環緩衝器、磁碟式dbm檔案和memcache分散式快取的供應商。
新增快取狀態執行緒
mod_cache模組現在包括了一個新的cache_status執行緒,當快取決定已知時就會呼叫它。它提供了預設的實作,會將一個選擇性的X-CacheX-Cache-Detail標頭新增至回應中。

開發人員文件含有API變更的詳細清單

可用的語言:  en  |  fr  |  tr 

top

意見

公告
此處並非問答區。放置於此處的評論應指向改善文件或伺服器的建議,如果已實作或被視為無效/離題,我們的管理員可能會將這些評論移除。關於如何管理Apache HTTP伺服器的問題應導向我們的IRC頻道#httpd(在Libera.chat上),或寄送至我們的郵件清單