<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
<!-- $LastChangedRevision$ -->

<!--
 Copyright 2002-2005 The Apache Software Foundation or its licensors, as
 applicable.

 Licensed 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_connect.xml.meta">

<name>mod_proxy_connect</name>
<description><module>mod_proxy</module> extension for
<code>CONNECT</code> request handling</description>
<status>Extension</status>
<sourcefile>proxy_connect.c</sourcefile>
<identifier>proxy_connect_module</identifier>

<summary>
    <p>This module <em>requires</em> the service of <module
    >mod_proxy</module>. It provides support for the <code>CONNECT</code>
    HTTP method. This method is mainly used to tunnel SSL requests
    through proxy servers.</p>

    <p>Thus, in order to get the ability of handling <code>CONNECT</code>
    requests, <module>mod_proxy</module> and
    <module>mod_proxy_connect</module> have to be present in the server.</p>

    <note type="warning"><title>Warning</title>
      <p>Do not enable proxying until you have <a
      href="mod_proxy.html#access">secured your server</a>. Open proxy
      servers are dangerous both to your network and to the Internet at
      large.</p>
    </note>
</summary>
<seealso><directive module="mod_proxy">AllowCONNECT</directive></seealso>
<seealso><module>mod_proxy</module></seealso>

</modulesynopsis>
