mod_proxy_wstunnel
Module pour mod_proxy supportant les websockets
Extension
mod_proxy_wstunnel.c
proxy_wstunnel_module
Disponible à partir de la version 2.4.5 du serveur HTTP Apache

Pour utiliser ce module, mod_proxy doit être chargé. Il fournit le support du tunnelling pour les connexions websocket vers un serveur websockets d'arrière-plan. La connexion est automatiquement promue en connexion websocket :

# Réponse HTTP

Upgrade: WebSocket Connection: Upgrade

Le mandatement des requêtes vers un serveur websockets comme `echo.websocket.org` peut être configuré via la directive ProxyPass :

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

La répartition de charge entre plusieurs serveurs d'arrière-plan peut être configurée via le module mod_proxy_balancer.

En fait, ce module permet d'accepter d'autres protocoles ; vous pouvez à cet effet utiliser le paramètre `upgrade` de la directive ProxyPass. La valeur NONE signifie que vous court-circuitez la consultation de l'en-tête, mais que vous autorisez quand-même WebSocket. La valeur ANY signifie que `Upgrade` va lire les en-têtes de la requête et les utilisera dans l'en-tête `Upgrade` de la réponse.

mod_proxy
ProxyWebsocketAsync
Création d'un tunnel asynchrone
ProxyWebsocketAsync ON|OFF
server config
virtual host

Cette directive permet d'imposer la création d'un tunnel asynchrone. Si le module MPM utilisé ne supporte pas les fonctionnalités nécessaires, le tunnel est créé en mode synchrone.

# Note

Le support du mode asynchrone est au stade expérimental et est susceptible d'évoluer.

ProxyWebsocketIdleTimeout
Temps d'attente maximum pour des données sur le tunnel websockets
ProxyWebsocketIdleTimeout num[ms]
ProxyWebsocketIdleTimeout 0
server config
virtual host

Cette directive permet de définir un temps maximum pendant lequel le tunnel pourra rester ouvert et inactif. Par défaut, ce temps est exprimé en secondes, mais vous pouvez le spécifier en millisecondes en utilisant le suffixe ms.

ProxyWebsocketAsyncDelay
Temps d'attente synchrone maximum pour des données
ProxyWebsocketAsyncDelay num[ms]
ProxyWebsocketAsyncDelay 0
server config
virtual host

Si la directive ProxyWebsocketAsync est activée, cette directive permet de définir le temps maximum pendant lequel le serveur attendra des données en mode synchrone. Par défaut, ce temps est exprimé en secondes, mais vous pouvez le spécifier en millisecondes en utilisant le suffixe ms.

# Note

Le support du mode asynchrone est au stade expérimental et est susceptible d'évoluer.