Document new features MP-632
[metaproxy-moved-to-github.git] / doc / frontend_net.xml
index 852f45c..fa6fcd1 100644 (file)
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" 
-    "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd" [
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+    "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
  <!ENTITY copyright SYSTEM "copyright.xml">
  <!ENTITY % idcommon SYSTEM "common/common.ent">
      %idcommon;
 ]>
 <refentry id="ref-frontend_net">
+ <refentryinfo>
+  <productname>Metaproxy</productname>
+  <orgname>Index Data</orgname>
+ </refentryinfo>
+
  <refmeta>
   <refentrytitle>frontend_net</refentrytitle>
   <manvolnum>3mp</manvolnum>
-   <refmiscinfo>Metaproxy Module</refmiscinfo>
-</refmeta>
+  <refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
+ </refmeta>
+
  <refnamediv>
   <refname>frontend_net</refname>
   <refpurpose>Metaproxy Network Server module that accepts Z39.50 and
   HTTP requests</refpurpose>
  </refnamediv>
+
  <refsect1><title>DESCRIPTION</title>
   <para>
    This is a frontend module. Listens on one or more ports and
    sends HTTP/Z39.50 messages to other filters.
   </para>
  </refsect1>
+
+ <refsect1><title>CONFIGURATION</title>
+  <para>
+   Element <literal>port</literal> is a repeating element (1 or more). The
+   text content specifies a listening port. A few attributes may be
+   given for each port element. Attribute <literal>route</literal> specifies
+   the route to use for the port. Attribute <literal>max_recv_bytes</literal>
+   specifies maximum package size that YAZ should accept (it calls
+   cs_set_max_recv_bytes function of YAZ).
+  </para>
+  <para>
+   Element <literal>threads</literal> is an optional element. The
+   text content specifies number of worker threads for the following
+   filters to use. The default value is 5 (5 worker threads).
+  </para>
+  <para>
+   Element <literal>max-threads</literal> is an optional element. The
+   text content specifies maximum number of worker threads for the following
+   filters to use. By default the thread count is fixed.
+   By using this setting with a higher value than the treads
+   setting extra worker threads will be added as necessary.
+  </para>
+  <para>
+   Element <literal>stack-size</literal> is an optional element. The
+   text content specifies stack size in kilo bytes for worker threads.
+   If omitted, the system default stack size for threads is used.
+  </para>
+  <para>
+   Element <literal>timeout</literal> is an optional element. The
+   text content is treated as an integer that specifies the session timeout
+   in seconds for a client session (using the frontend net filter). The
+   default value is 300 (5 minutes).
+  </para>
+  <para>
+   Element <literal>connect-max</literal> is an optional repeatable element.
+   The text content is treated as an integer that specifies maximum number
+   of accepted TCP sessions from the same original IP. A value of 0
+   means unlimited (no limit). The attribute <literal>ip</literal>
+   specifies an IP-pattern to match. If the IP pattern  is matched, the
+   limit takes effect. By repeating this element with different IP
+   patterns, limits may be configured "per-IP". If no patterns are
+   matched, no limit takes place. The IP pattern is a glob pattern.
+   Blanks in a pattern may be used to provide alternatives.
+   For example:
+   <literal>ip="::1 127*"</literal> would match <literal>::1</literal> or
+   <literal>127.0.0.1</literal> , but not <literal>128.0.0.1</literal>.
+  </para>
+  <para>
+   Element <literal>http-req-max</literal> is an optional repeatable element.
+   The text content is treated as an integer that specifies maximum number
+   of accepted HTTP requests from the same original IP. A value of 0
+   means unlimited (no limit). The attribute <literal>ip</literal>
+   specifies an IP-pattern to match. If the IP pattern is matched, the
+   limit takes effect. By repeating this element with different IP
+   patterns, limits may be configured "per-IP". If no patterns are
+   matched, no limit takes place. The IP pattern is a glob pattern.
+   Blanks in a pattern may be used to provide alternatives.
+  </para>
+  <para>
+   Element <literal>message</literal> is an optional element. If
+   given and non-empty logging is performed by the frontend_net filter
+   (to the log file as given ny option -l).
+  </para>
+  <para>
+   Element <literal>stat-req</literal> is an optional element. It
+   specifies a URL path that triggers a report to be generated by
+   the frontend_net filter. By default this report is disabled (same
+   as empty value). The value itself is the path and should be prefixed
+   with a slash. For example <literal>/fn_stat</literal>.
+  </para>
+ </refsect1>
+
+ <refsect1><title>SCHEMA</title>
+   <literallayout><xi:include
+                    xi:href="../xml/schema/filter_frontend_net.rnc"
+                    xi:parse="text"
+                    xmlns:xi="http://www.w3.org/2001/XInclude" />
+   </literallayout>
+ </refsect1>
+
  <refsect1><title>EXAMPLES</title>
   <para>
    A typical configuration looks like this:
    <screen><![CDATA[
     <filter type="frontend_net">
-     <port>@:9000</port>
      <threads>10</threads>
+     <port>@:9000</port>
+     <connect-max>100</connect-max>
+     <!-- allow many HTTP requests from localhost -->
+     <http-req-max ip="::1 127.*">10000</http-req-max>
+     <!-- fewer for outsiders -->
+     <http-req-max>100</http-req-max>
+     <message>FN</message>
+     <stat-req>/fn_stat</stat-req>
     </filter>
 ]]>
    </screen>
   </para>
- </refsect1> 
+ </refsect1>
+
  <refsect1><title>SEE ALSO</title>
   <para>
    <citerefentry>
    </citerefentry>
   </para>
  </refsect1>
+
  &copyright;
 </refentry>
 
 <!-- Keep this comment at the end of the file
 Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-sgml-parent-document:nil
-sgml-local-catalogs: nil
-sgml-namecase-general:t
+mode: nxml
+nxml-child-indent: 1
 End:
 -->