Serveur HTTP Apache Version 2.5
Description: | Module pour mod_proxy supportant les
websockets |
---|---|
Statut: | Extension |
Identificateur de Module: | proxy_wstunnel_module |
Fichier Source: | mod_proxy_wstunnel.c |
Compatibilité: | Disponible à partir de la version 2.4.5 du serveur HTTP Apache |
Depuis la version 2.4.47 du serveur HTTP Apache, la promotion de
protocole (tunneling) peut être pris en charge de manière plus efficace par
mod_proxy_http
.
Voir Promotion de protocole.
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 :
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/"
Il est possible de mandater les websockets et HTTP en même temps en
définissant la directive ProxyPass
concernant les websockets avant celle
concernant HTTP :
ProxyPass "/" "ws://backend.example.com:9080/" ProxyPass "/" "http://backend.example.com:9080/"
La répartition de charge entre plusieurs serveurs d'arrière-plan peut être
configurée via le module mod_proxy_balancer
.
Ce module peut aussi être utilisé pour la promotion vers des protocoles autres
que WebSocket en définissant le paramètre upgrade de la directive ProxyPass
avec un nom de
protocole particulier.
Les valeurs spéciales upgrade=NONE
et upgrade=ANY
peuvent être utilisées pour tester ou forcer la promotion de protocole mais leur
utilisation n'est pas recommandée en production pour des
raisons de sécurité.
NONE
signifie que la vérification de l'en-tête est omise mais que
la promotion (tunneling) vers WebSocket s'effectuera quand-même.
ANY
signifie que la promotion (tunneling) s'effectuera en utilisant
tout protocole demandé par le client.
Description: | Création d'un tunnel asynchrone |
---|---|
Syntaxe: | ProxyWebsocketAsync ON|OFF |
Contexte: | configuration globale, serveur virtuel |
Statut: | Extension |
Module: | mod_proxy_wstunnel |
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.
Le support du mode asynchrone est au stade expérimental et est susceptible d'évoluer.
Description: | Temps d'attente synchrone maximum pour des données |
---|---|
Syntaxe: | ProxyWebsocketAsyncDelay num[ms] |
Défaut: | ProxyWebsocketAsyncDelay 0 |
Contexte: | configuration globale, serveur virtuel |
Statut: | Extension |
Module: | mod_proxy_wstunnel |
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.
Le support du mode asynchrone est au stade expérimental et est susceptible d'évoluer.
Description: | Demande à ce module de laisser mod_proxy_http
gérer la requête |
---|---|
Syntaxe: | ProxyWebsocketFallbackToProxyHttp On|Off |
Défaut: | ProxyWebsocketFallbackToProxyHttp On |
Contexte: | configuration globale, serveur virtuel |
Statut: | Extension |
Module: | mod_proxy_wstunnel |
Compatibilité: | Disponible à partir de la version 2.4.48 du serveur HTTP Apache |
Depuis la version 2.4.47 de httpd, mod_proxy_http
peut
gérer le tunneling et la mise à jour via les WebSockets en accord avec la
RFC 7230 ; cette directive permet de définir si, pour ces actions,
mod_proxy_wstunnel
doit passer la main à
mod_proxy_http
, ce qui est le cas par défaut.
Définir cette directive à Off revient à laisser
mod_proxy_wstunnel
gérer les requêtes WebSocket, comme avec
les versions 2.4.46 et antérieures de httpd.
Description: | Temps d'attente maximum pour des données sur le tunnel websockets |
---|---|
Syntaxe: | ProxyWebsocketIdleTimeout num[ms] |
Défaut: | ProxyWebsocketIdleTimeout 0 |
Contexte: | configuration globale, serveur virtuel |
Statut: | Extension |
Module: | mod_proxy_wstunnel |
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.