<-
Apache > Serveur HTTP > Documentation > Version 2.5 > Modules

Module Apache mod_proxy_wstunnel

Langues Disponibles:  en  |  fr 

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

Sommaire

Obsolescence

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 :

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/"

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.

Directives

Traitement des bugs

Voir aussi

top

Directive ProxyWebsocketAsync

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.

Note

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

top

Directive ProxyWebsocketAsyncDelay

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.

Note

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

top

Directive ProxyWebsocketFallbackToProxyHttp

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.

top

Directive ProxyWebsocketIdleTimeout

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.

Langues Disponibles:  en  |  fr 

top

Commentaires

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.