<-
Apache > HTTP Server > 文件 > 第 2.4 版 > 模組

Apache 模組 mod_proxy_wstunnel

可用語言:  en  |  fr 

說明mod_proxy 的 Websockets 支援模組
狀態延伸模組
模組識別碼proxy_wstunnel_module
原始檔mod_proxy_wstunnel.c
相容性適用於 httpd 2.4.5 及更新版本

摘要

已棄用

自 Apache HTTP Server 2.4.47 起,協定升級(隧道路由)可由 mod_proxy_http 更妥善處理。

請參閱 協定升級

此模組需要mod_proxy 的服務。它提供支援,用於建立與後端 Websockets 伺服器的 WebSocket 連線隧道路由。連線會自動升級成 WebSocket 連線

HTTP 回應

Upgrade: WebSocket
Connection: Upgrade

echo.websocket.org 等 Websockets 伺服器發出代理請求時,可使用 ProxyPass 指令

ProxyPass "/ws2/"  "ws://echo.websocket.org/"
ProxyPass "/wss2/" "wss://echo.websocket.org/"

同時代理 HTTP 和 Websockets,同時並使用專門的一組 URL (僅限 Websockets),可藉由在 HTTP 指令前指定 Websockets ProxyPass 指令來完成

ProxyPassMatch ^/(myApp/ws)$  ws://backend.example.com:9080/$1
ProxyPass / http://backend.example.com:9080/

同時代理 HTTP 和 Websockets,同時 Websockets URL 不僅限於 Websockets 或無法預先得知時,可使用 RewriteRule 指令來設定 Websockets 代理

ProxyPass / http://example.com:9080/
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://example.com:9080/$1" [P,L]

可使用 mod_proxy_balancer 來達成多個後端負載平衡。

此模組也可用於升級至非 WebSocket 的其他協定,方法是在 ProxyPass 指令中將 upgrade 參數設為自訂協定名稱。特殊值 upgrade=NONEupgrade=ANY 可用於測試/強制升級,但基於安全性考量,不建議在實際應用時使用。NONE 的意思是略過標頭檢查,但仍會始終進行至 WebSocket 的升級/隧道路由。ANY 的意思是將使用客戶端所請求的任何協定來執行升級/隧道路由。

Support Apache!

指令

錯誤檢查清單

另請參閱

top

ProxyWebsocketFallbackToProxyHttp 指令

說明指示此模組允許 mod_proxy_http 處理要求
語法ProxyWebsocketFallbackToProxyHttp 開啟|關閉
預設ProxyWebsocketFallbackToProxyHttp 開啟
內容伺服器組態,虛擬主機
狀態延伸模組
模組mod_proxy_wstunnel
相容性可用於 httpd 2.4.48 及更新版本

自 httpd 2.4.47 起,mod_proxy_http 可以根據 RFC 7230 處理 WebSocket 升級和隧道,此指令控制 mod_proxy_wstunnel 是否將此資料傳遞給 mod_proxy_http (預設會傳遞)。

設定為 關閉 會讓 mod_proxy_wstunnel 處理 WebSocket 要求,如同 httpd 2.4.46 及更早版本。

可用語言:  en  |  fr 

top

意見

公告
此處並非問答區。發佈於此處的意見應針對改善文件或伺服器的建議,若已執行或被視為無效/離題,我們的管理員可能會移除這些意見。有關如何管理 Apache HTTP Server 的問題應轉到我們的 IRC 頻道 #httpd(在 Libera.chat 上),或傳送至我們的 寄信名單