2 <refentrytitle>yaz-proxy</refentrytitle>
3 <manvolnum>8</manvolnum>
6 <refname>yaz-proxy</refname>
7 <refpurpose>The YAZ toolkit's transparent Z39.50 proxy</refpurpose>
11 <command>yaz-proxy</command>
12 <arg choice="opt">-a <replaceable>filename</replaceable></arg>
13 <arg choice="opt">-l <replaceable>filename</replaceable></arg>
14 <arg choice="opt">-m <replaceable>num</replaceable></arg>
15 <arg choice="opt">-v <replaceable>level</replaceable></arg>
16 <arg choice="opt">-t <replaceable>target</replaceable></arg>
17 <arg choice="opt">-U <replaceable>auth</replaceable></arg>
18 <arg choice="opt">-o <replaceable>level</replaceable></arg>
19 <arg choice="opt">-i <replaceable>seconds</replaceable></arg>
20 <arg choice="opt">-T <replaceable>seconds</replaceable></arg>
21 <arg choice="opt">-p <replaceable>pidfile</replaceable></arg>
22 <arg choice="opt">-u <replaceable>userid</replaceable></arg>
23 <arg choice="opt">-c <replaceable>config</replaceable></arg>
24 <arg choice="req"><replaceable>host</replaceable>:<replaceable>port</replaceable></arg>
28 <refsect1><title>DESCRIPTION</title>
30 <command>yaz-proxy</command> is a Z39.50 optimizing proxy daemon.
31 The listening port must be specified on the command-line.
32 <command>inetd</command> operation is not supported.
33 The <replaceable>host</replaceable>:<replaceable>port</replaceable>
34 argument specifies host address to listen to, and the port to
35 listen on. Use the host <literal>@</literal>
36 to listen for connections coming from any address.
39 <command>yaz-proxy</command> can be configured using command-line
40 options or a configuration file.
41 Configuration file options override values specified
45 <command>yaz-proxy</command> rereads its configuration file and
46 reopens log files when it receives the hangup signal, SIGHUP.
49 <refsect1><title>OPTIONS</title>
51 <varlistentry><term>-a <replaceable>filename</replaceable></term>
53 Specifies the name of a file to which to write a log of the
54 APDUs (protocol packets) that pass through the proxy. The
55 special filename <literal>-</literal> may be used to indicate
59 <varlistentry><term>-l <replaceable>filename</replaceable></term>
61 Specifies the name of a file to which to write a log of the
62 YAZ proxy activity. This uses the logging facility as provided
63 by the YAZ toolkit. If this options is omitted, the output
67 <varlistentry><term>-m <replaceable>num</replaceable></term>
69 Specifies the maximum number of connections to be cached
73 <varlistentry><term>-v <replaceable>level</replaceable></term>
75 Sets the logging level. <replaceable>level</replaceable> is
76 a comma-separated list of members of the set
77 {<literal>fatal</literal>,<literal>debug</literal>,<literal>warn</literal>,<literal>log</literal>,<literal>malloc</literal>,<literal>all</literal>,<literal>none</literal>}.
80 <varlistentry><term>-t <replaceable>target</replaceable></term>
82 Specifies the default backend target to use when a client
83 connects that does not explicitly specify a target in its
84 <literal>initRequest</literal>.
87 <varlistentry><term>-U <replaceable>auth</replaceable></term>
89 Specifies authentication info to be sent to the backend target.
90 This is useful if you happen to have an internal target that
91 requires authentication, or if the client software does not allow
95 <varlistentry><term>-o <replaceable>level</replaceable></term>
97 Sets level for optimization. Use zero to disable; non-zero
98 to enable. Handling for this is not fully implemented;
99 we will probably use a bit mask to enable/disable specific
100 features. By default optimization is enabled (value 1).
103 <varlistentry><term>-i <replaceable>seconds</replaceable></term>
105 Specifies in seconds the idle time for communication between
106 client and proxy. If a connection is inactive for this long
107 it will be closed. Default: 600 seconds (10 minutes).
110 <varlistentry><term>-T <replaceable>seconds</replaceable></term>
112 Specifies in seconds the idle time for communication between
113 proxy and backend target.
114 If a connection is inactive for this long
115 it will be closed. Default: 600 seconds (10 minutes).
118 <varlistentry><term>-p <replaceable>pidfile</replaceable></term>
120 When specified, yaz-proxy will create <replaceable>pidfile</replaceable>
121 with the process ID of the proxy. The pidfile will be generated
122 before the process changes identity (see option <literal>-u</literal>).
125 <varlistentry><term>-u <replaceable>userid</replaceable></term>
127 When specified, yaz-proxy will change identity to the user ID
128 specified, just after the proxy has started listening to a
129 possibly privileged port and after the PID file has been created
130 if specified by option <literal>-u</literal>.
133 <varlistentry><term>-c <replaceable>config</replaceable></term>
135 Specifies config filename. Configuration is in XML
136 and is only supported if the YAZ proxy is compiled with
143 <title>EXAMPLES</title>
145 The following command starts the proxy, listening on port
146 9000, with its default backend target set to the Library of
147 Congress bibliographic server:
150 $ yaz-proxy -t z3950.loc.gov:7090 @:9000
153 The LOC target is sometimes very slow. You can connect to
154 it using yaz-client as follows:
157 $ yaz-client localhost:9000/voyager
160 Connection accepted by target.
162 Name : Voyager LMS - Z39.50 Server
164 Options: search present
168 Received SearchResponse.
169 Search was a success.
170 Number of hits: 10000
175 Received SearchResponse.
176 Search was a success.
177 Number of hits: 10000
182 In this test, the second search was more than 4000 times faster
183 than the first, because the proxy cached the result of the first
184 search and noticed that the second was the same.
187 The YAZ command-line client,
188 <command>yaz-client</command>,
189 allows you to set the proxy address by specifying option -p. In
190 that case, the actual backend target is specified as part of the
193 <para>Suppose you have a proxy running on localhost,
194 port 9000 and wish to connect to Index Data's test target at
195 <literal>indexdata.dk:210/gils</literal> you could use:
197 yaz-client -p localhost:9000 indexdata.dk:210/gils
199 Since port 210 is the default, the port can be omitted:
201 yaz-client -p localhost:9000 indexdata.dk/gils
205 <!-- Keep this comment at the end of the file
210 sgml-minimize-attributes:nil
211 sgml-always-quote-attributes:t
214 sgml-parent-document: "proxy.xml"
215 sgml-local-catalogs: nil
216 sgml-namecase-general:t