Serveur HTTP Apache Version 2.4
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 |
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, avec un jeu
spécifique d'URLs pour les websockets, en définissant la directive ProxyPass
concernant les
websockets avant celle concernant HTTP :
ProxyPassMatch ^/(myApp/ws)$ ws://backend.example.com:9080/$1 ProxyPass / http://backend.example.com:9080/
Il est possible de mandater les websockets et HTTP en même temps, lorsque
les URLs websockets ne concernent pas uniquement les websockets ou ne sont pas
connues à l'avance, en utilisant la directive RewriteRule
pour configurer le mandatement des
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]
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.
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.