135af99222f238ecba4c0673e832034896741326jim<?xml version="1.0" encoding="utf-8"?>
135af99222f238ecba4c0673e832034896741326jim<!DOCTYPE modulesynopsis SYSTEM "/style/modulesynopsis.dtd">
135af99222f238ecba4c0673e832034896741326jim<?xml-stylesheet type="text/xsl" href="/style/manual.en.xsl"?>
b64a46dfbb92ef707e04a2804fe91a450491514fnd<!-- $LastChangedRevision$ -->
135af99222f238ecba4c0673e832034896741326jim
135af99222f238ecba4c0673e832034896741326jim<!--
135af99222f238ecba4c0673e832034896741326jim Licensed to the Apache Software Foundation (ASF) under one or more
135af99222f238ecba4c0673e832034896741326jim contributor license agreements. See the NOTICE file distributed with
135af99222f238ecba4c0673e832034896741326jim this work for additional information regarding copyright ownership.
135af99222f238ecba4c0673e832034896741326jim The ASF licenses this file to You under the Apache License, Version 2.0
135af99222f238ecba4c0673e832034896741326jim (the "License"); you may not use this file except in compliance with
135af99222f238ecba4c0673e832034896741326jim the License. You may obtain a copy of the License at
135af99222f238ecba4c0673e832034896741326jim
135af99222f238ecba4c0673e832034896741326jim http://www.apache.org/licenses/LICENSE-2.0
135af99222f238ecba4c0673e832034896741326jim
135af99222f238ecba4c0673e832034896741326jim Unless required by applicable law or agreed to in writing, software
135af99222f238ecba4c0673e832034896741326jim distributed under the License is distributed on an "AS IS" BASIS,
135af99222f238ecba4c0673e832034896741326jim WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135af99222f238ecba4c0673e832034896741326jim See the License for the specific language governing permissions and
135af99222f238ecba4c0673e832034896741326jim limitations under the License.
135af99222f238ecba4c0673e832034896741326jim-->
135af99222f238ecba4c0673e832034896741326jim
135af99222f238ecba4c0673e832034896741326jim<modulesynopsis metafile="mod_proxy_wstunnel.xml.meta">
135af99222f238ecba4c0673e832034896741326jim
135af99222f238ecba4c0673e832034896741326jim<name>mod_proxy_wstunnel</name>
2544c1693130c0a3106f2ff2c0ef7e3cf0a228e0jim<description>Websockets support module for
135af99222f238ecba4c0673e832034896741326jim<module>mod_proxy</module></description>
135af99222f238ecba4c0673e832034896741326jim<status>Extension</status>
135af99222f238ecba4c0673e832034896741326jim<sourcefile>mod_proxy_wstunnel.c</sourcefile>
135af99222f238ecba4c0673e832034896741326jim<identifier>proxy_wstunnel_module</identifier>
3cbfdb99d492b7f9451ec3caa092a71f647fe2abtrawick<compatibility>Available in httpd 2.4.5 and later</compatibility>
135af99222f238ecba4c0673e832034896741326jim
135af99222f238ecba4c0673e832034896741326jim<summary>
135af99222f238ecba4c0673e832034896741326jim <p>This module <em>requires</em> the service of <module
135af99222f238ecba4c0673e832034896741326jim >mod_proxy</module>. It provides support for the tunnelling of web
135af99222f238ecba4c0673e832034896741326jim socket connections to a backend websockets server. The connection
135af99222f238ecba4c0673e832034896741326jim is automagically upgraded to a websocket connection:</p>
135af99222f238ecba4c0673e832034896741326jim
135af99222f238ecba4c0673e832034896741326jim <highlight language="config">
135af99222f238ecba4c0673e832034896741326jimUpgrade: WebSocket
135af99222f238ecba4c0673e832034896741326jimConnection: Upgrade
135af99222f238ecba4c0673e832034896741326jim </highlight>
135af99222f238ecba4c0673e832034896741326jim
135af99222f238ecba4c0673e832034896741326jim
135af99222f238ecba4c0673e832034896741326jim <example><title>Proxying requests to websockets server</title>
135af99222f238ecba4c0673e832034896741326jim <highlight language="config">
2fae9d127f7143fabe8f73958eb9bde31df17d41coarProxyPass "/ws2/" "ws://echo.websocket.org/"
2fae9d127f7143fabe8f73958eb9bde31df17d41coarProxyPass "/wss2/" "wss://echo.websocket.org/"
135af99222f238ecba4c0673e832034896741326jim </highlight>
135af99222f238ecba4c0673e832034896741326jim </example>
135af99222f238ecba4c0673e832034896741326jim
135af99222f238ecba4c0673e832034896741326jim</summary>
135af99222f238ecba4c0673e832034896741326jim
135af99222f238ecba4c0673e832034896741326jim<seealso><module>mod_proxy</module></seealso>
54d750a84a175d8e338880514d440773eb986b50covener
54d750a84a175d8e338880514d440773eb986b50covener<directivesynopsis>
060be1d2fbafc7ff7e52558274af1995c7bc9d70covener<name>ProxyWebsocketAsync</name>
54d750a84a175d8e338880514d440773eb986b50covener<description>Instructs this module to try to create an asynchronous tunnel</description>
060be1d2fbafc7ff7e52558274af1995c7bc9d70covener<syntax>ProxyWebsocketAsync ON|OFF</syntax>
54d750a84a175d8e338880514d440773eb986b50covener<contextlist><context>server config</context>
54d750a84a175d8e338880514d440773eb986b50covener<context>virtual host</context>
54d750a84a175d8e338880514d440773eb986b50covener</contextlist>
54d750a84a175d8e338880514d440773eb986b50covener
54d750a84a175d8e338880514d440773eb986b50covener<usage>
5d01f40ffd657dd2ac567aacd93cabd162ddfa79coar <p>This directive instructs the server to try to create an asynchronous tunnel.
5d01f40ffd657dd2ac567aacd93cabd162ddfa79coar If the current MPM does not support the necessary features, a synchronous
54d750a84a175d8e338880514d440773eb986b50covener tunnel is used.</p>
5d01f40ffd657dd2ac567aacd93cabd162ddfa79coar <note><title>Note</title><p>Async support is experimental and subject
28a0e2071b411c442b27c29cf4e8b6194ccb8077covener to change.</p></note>
54d750a84a175d8e338880514d440773eb986b50covener</usage>
54d750a84a175d8e338880514d440773eb986b50covener</directivesynopsis>
54d750a84a175d8e338880514d440773eb986b50covener
54d750a84a175d8e338880514d440773eb986b50covener<directivesynopsis>
54d750a84a175d8e338880514d440773eb986b50covener<name>ProxyWebsocketIdleTimeout</name>
54d750a84a175d8e338880514d440773eb986b50covener<description>Sets the maximum amount of time to wait for data on the websockets tunnel</description>
54d750a84a175d8e338880514d440773eb986b50covener<syntax>ProxyWebsocketIdleTimeout <var>num</var>[ms]</syntax>
54d750a84a175d8e338880514d440773eb986b50covener<default>ProxyWebsocketIdleTimeout 0</default>
54d750a84a175d8e338880514d440773eb986b50covener<contextlist><context>server config</context>
54d750a84a175d8e338880514d440773eb986b50covener<context>virtual host</context>
54d750a84a175d8e338880514d440773eb986b50covener</contextlist>
54d750a84a175d8e338880514d440773eb986b50covener
54d750a84a175d8e338880514d440773eb986b50covener<usage>
5d01f40ffd657dd2ac567aacd93cabd162ddfa79coar <p>This directive imposes a maximum amount of time for the tunnel to be
259878293a997ff49f5ddfc53d3739cbdc25444ecovener left open while idle.</p>
54d750a84a175d8e338880514d440773eb986b50covener</usage>
54d750a84a175d8e338880514d440773eb986b50covener</directivesynopsis>
54d750a84a175d8e338880514d440773eb986b50covener
54d750a84a175d8e338880514d440773eb986b50covener<directivesynopsis>
060be1d2fbafc7ff7e52558274af1995c7bc9d70covener<name>ProxyWebsocketAsyncDelay</name>
54d750a84a175d8e338880514d440773eb986b50covener<description>Sets the amount of time the tunnel waits synchronously for data</description>
060be1d2fbafc7ff7e52558274af1995c7bc9d70covener<syntax>ProxyWebsocketAsyncDelay <var>num</var>[ms]</syntax>
060be1d2fbafc7ff7e52558274af1995c7bc9d70covener<default>ProxyWebsocketAsyncDelay 0</default>
54d750a84a175d8e338880514d440773eb986b50covener<contextlist><context>server config</context>
54d750a84a175d8e338880514d440773eb986b50covener<context>virtual host</context>
54d750a84a175d8e338880514d440773eb986b50covener</contextlist>
54d750a84a175d8e338880514d440773eb986b50covener
54d750a84a175d8e338880514d440773eb986b50covener<usage>
5d01f40ffd657dd2ac567aacd93cabd162ddfa79coar <p>If <directive>ProxyWebsocketAsync</directive> is enabled, this directive
54d750a84a175d8e338880514d440773eb986b50covener controls how long the server synchronously waits for more data.</p>
28a0e2071b411c442b27c29cf4e8b6194ccb8077covener
5d01f40ffd657dd2ac567aacd93cabd162ddfa79coar <note><title>Note</title><p>Async support is experimental and subject
28a0e2071b411c442b27c29cf4e8b6194ccb8077covener to change. </p></note>
28a0e2071b411c442b27c29cf4e8b6194ccb8077covener
54d750a84a175d8e338880514d440773eb986b50covener</usage>
54d750a84a175d8e338880514d440773eb986b50covener</directivesynopsis>
135af99222f238ecba4c0673e832034896741326jim</modulesynopsis>