| <?xml version="1.0" encoding="utf-8"?> |
| <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> |
| <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?> |
| <!-- English Revision: 1907040 --> |
| <!-- French translation : Lucien GENTIS --> |
| |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <modulesynopsis metafile="mod_proxy_wstunnel.xml.meta"> |
| |
| <name>mod_proxy_wstunnel</name> |
| <description>Module pour <module>mod_proxy</module> supportant les |
| websockets</description> |
| <status>Extension</status> |
| <sourcefile>mod_proxy_wstunnel.c</sourcefile> |
| <identifier>proxy_wstunnel_module</identifier> |
| <compatibility>Disponible à partir de la version 2.4.5 du serveur HTTP |
| Apache</compatibility> |
| |
| <summary> |
| <note type="warning"><title><a id="deprecation" |
| name="deprecation">Obsolescence</a></title> |
| <p>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 |
| <module>mod_proxy_http</module>.</p> |
| <p>Voir <a href="mod_proxy.html#protoupgrade">Promotion de protocole</a>.</p> |
| </note> |
| |
| <p>Pour utiliser ce module, <module>mod_proxy</module> 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 :</p> |
| |
| <example><title>Réponse HTTP</title> |
| <highlight language="config"> |
| Upgrade: WebSocket |
| Connection: Upgrade |
| </highlight> |
| </example> |
| |
| <p>Le mandatement des requêtes vers un serveur websockets comme |
| <code>echo.websocket.org</code> peut être configuré via la directive <directive |
| type="ProxyPass" module="mod_proxy">ProxyPass</directive> :</p> |
| <highlight language="config"> |
| ProxyPass "/ws2/" "ws://echo.websocket.org/" |
| ProxyPass "/wss2/" "wss://echo.websocket.org/" |
| </highlight> |
| |
| <p>Il est possible de mandater les websockets et HTTP en même temps en |
| définissant la directive <directive type="ProxyPass" |
| module="mod_proxy">ProxyPass</directive> concernant les websockets avant celle |
| concernant HTTP :</p> |
| <highlight language="config"> |
| ProxyPass "/" "ws://backend.example.com:9080/" |
| ProxyPass "/" "http://backend.example.com:9080/" |
| </highlight> |
| |
| <p>La répartition de charge entre plusieurs serveurs d'arrière-plan peut être |
| configurée via le module <module>mod_proxy_balancer</module>.</p> |
| |
| <p> |
| Ce module peut aussi être utilisé pour la promotion vers des protocoles autres |
| que WebSocket en définissant le paramètre <var><a |
| href="mod_proxy.html#upgrade">upgrade</a></var> de la directive <directive |
| type="ProxyPass" module="mod_proxy">ProxyPass</directive> avec un nom de |
| protocole particulier. |
| Les valeurs spéciales <code>upgrade=NONE</code> et <code>upgrade=ANY</code> |
| peuvent être utilisées pour tester ou forcer la promotion de protocole mais leur |
| utilisation <strong>n'est pas recommandée</strong> en production pour des |
| raisons de sécurité. |
| <code>NONE</code> signifie que la vérification de l'en-tête est omise mais que |
| la promotion (tunneling) vers WebSocket s'effectuera quand-même. |
| <code>ANY</code> signifie que la promotion (tunneling) s'effectuera en utilisant |
| tout protocole demandé par le client. |
| </p> |
| </summary> |
| |
| <seealso><module>mod_proxy</module></seealso> |
| |
| <directivesynopsis> |
| <name>ProxyWebsocketFallbackToProxyHttp</name> |
| <description>Demande à ce module de laisser <module>mod_proxy_http</module> |
| gérer la requête</description> |
| <syntax>ProxyWebsocketFallbackToProxyHttp On|Off</syntax> |
| <default>ProxyWebsocketFallbackToProxyHttp On</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context> |
| </contextlist> |
| <compatibility>Disponible à partir de la version 2.4.48 du serveur HTTP Apache</compatibility> |
| |
| <usage> |
| <p>Depuis la version 2.4.47 de httpd, <module>mod_proxy_http</module> 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, |
| <module>mod_proxy_wstunnel</module> doit passer la main à |
| <module>mod_proxy_http</module>, ce qui est le cas par défaut.</p> |
| <p>Définir cette directive à <em>Off</em> revient à laisser |
| <module>mod_proxy_wstunnel</module> gérer les requêtes WebSocket, comme avec |
| les versions 2.4.46 et antérieures de httpd.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>ProxyWebsocketAsync</name> |
| <description>Création d'un tunnel asynchrone</description> |
| <syntax>ProxyWebsocketAsync ON|OFF</syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context> |
| </contextlist> |
| |
| <usage> |
| <p>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.</p> |
| <note><title>Note</title><p>Le support du mode asynchrone est |
| au stade expérimental et est susceptible d'évoluer.</p></note> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>ProxyWebsocketIdleTimeout</name> |
| <description>Temps d'attente maximum pour des données sur le tunnel websockets</description> |
| <syntax>ProxyWebsocketIdleTimeout <var>num</var>[ms]</syntax> |
| <default>ProxyWebsocketIdleTimeout 0</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context> |
| </contextlist> |
| |
| <usage> |
| <p>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 <em>ms</em>.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>ProxyWebsocketAsyncDelay</name> |
| <description>Temps d'attente synchrone maximum pour des données</description> |
| <syntax>ProxyWebsocketAsyncDelay <var>num</var>[ms]</syntax> |
| <default>ProxyWebsocketAsyncDelay 0</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context> |
| </contextlist> |
| |
| <usage> |
| <p>Si la directive <directive>ProxyWebsocketAsync</directive> 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 <em>ms</em>.</p> |
| |
| <note><title>Note</title><p>Le support du mode asynchrone est |
| au stade expérimental et est susceptible d'évoluer.</p></note> |
| </usage> |
| </directivesynopsis> |
| |
| </modulesynopsis> |