Apache HTTP Server Version 2.4
Available Languages: fr
Description: | Websockets module for mod_proxy |
---|---|
Status: | Extension |
Module Identifier: | proxy_wstunnel_module |
Source File: | mod_proxy_wstunnel.c |
Compatibility: | Available in httpd 2.4.5 and later |
This module requires the service of mod_proxy
. It provides for the tunnelling of web socket connections to a backend websockets server. The connection is automatically upgraded to a websocket connection:
Upgrade: WebSocket Connection: Upgrade
Proxying requests to a websockets server like echo.websocket.org
can be done using the Proxy
directive:
Proxy "/ws2/" "ws://echo.websocket.org/" Proxy "/wss2/" "wss://echo.websocket.org/"
Proxying both HTTP and websockets at the same time, with a specific set of URL's being websocket-only, can be done by specifying the websockets Proxy
directive before the HTTP directive:
ProxyMatch ^/(myApp/ws)$ ws://backend.example.com:9080/$1 Proxy / http://backend.example.com:9080/
Proxying both HTTP and websockets at the same time, where the websockets URL's are not websocket-only or not known in advance can be done by using the RewriteRule
directive to configure the websockets proxying:
Proxy / http://example.com:9080/ RewriteEngine on RewriteCond %{HTTP:Upgrade} websocket [NC] RewriteCond %{HTTP:Connection} upgrade [NC] RewriteRule ^/?(.*) "ws://example.com:9080/$1" [P,L]
Load balancing for multiple backends can be achieved using mod_proxy_balancer
.
In fact the module can be used to other protocols, you can set the upgrade
parameter in the Proxy
directive to allow the module to accept other protocol. NONE means you by the check for the header but still WebSocket. ANY means that Upgrade
will read in the request headers and use in the response Upgrade
Description: | Instructs this module to let mod_proxy_http handle the request |
---|---|
Syntax: | ProxyWebsocketFallbackToProxyHttp On|Off |
Default: | ProxyWebsocketFallbackToProxyHttp On |
Context: | server config, virtual host |
Status: | Extension |
Module: | mod_proxy_wstunnel |
Compatibility: | Available in httpd 2.4.48 and later |
Since httpd 2.4.47, mod_proxy_http
to this, which is the case by default.
Setting to Off lets mod_proxy_wstunnel
handle WebSocket requests as in httpd 2.4.46 and earlier.
Available Languages: fr