Document new features MP-632
[metaproxy-moved-to-github.git] / doc / frontend_net.xml
index 7d9c24f..fa6fcd1 100644 (file)
  <refsect1><title>CONFIGURATION</title>
   <para>
    Element <literal>port</literal> is a repeating element (1 or more). The
-   text content specifies a listening port.
+   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
    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 element. The
-   text content is treated as an integer that specifies maximum number
-   of TCP sessions from the same original IP. The special value 0 means
-   : no connection limit. This is also the default if this element is omitted.
+   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
     <filter type="frontend_net">
      <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>