File: Netcgi_ajp.html

package info (click to toggle)
ocamlnet 2.2.9-8
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 17,724 kB
  • ctags: 10,053
  • sloc: ml: 63,928; ansic: 1,973; makefile: 800; sh: 651
file content (278 lines) | stat: -rw-r--r-- 16,112 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<link rel="Start" href="index.html">
<link rel="previous" href="Netcgi.html">
<link rel="next" href="Netcgi_scgi.html">
<link rel="Up" href="index.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of class attributes" rel=Appendix href="index_attributes.html">
<link title="Index of class methods" rel=Appendix href="index_methods.html">
<link title="Index of classes" rel=Appendix href="index_classes.html">
<link title="Index of class types" rel=Appendix href="index_class_types.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="Index of module types" rel=Appendix href="index_module_types.html">
<link title="Uq_gtk" rel="Chapter" href="Uq_gtk.html">
<link title="Equeue" rel="Chapter" href="Equeue.html">
<link title="Unixqueue" rel="Chapter" href="Unixqueue.html">
<link title="Uq_engines" rel="Chapter" href="Uq_engines.html">
<link title="Uq_socks5" rel="Chapter" href="Uq_socks5.html">
<link title="Unixqueue_mt" rel="Chapter" href="Unixqueue_mt.html">
<link title="Equeue_intro" rel="Chapter" href="Equeue_intro.html">
<link title="Uq_ssl" rel="Chapter" href="Uq_ssl.html">
<link title="Uq_tcl" rel="Chapter" href="Uq_tcl.html">
<link title="Netcgi_common" rel="Chapter" href="Netcgi_common.html">
<link title="Netcgi" rel="Chapter" href="Netcgi.html">
<link title="Netcgi_ajp" rel="Chapter" href="Netcgi_ajp.html">
<link title="Netcgi_scgi" rel="Chapter" href="Netcgi_scgi.html">
<link title="Netcgi_cgi" rel="Chapter" href="Netcgi_cgi.html">
<link title="Netcgi_fcgi" rel="Chapter" href="Netcgi_fcgi.html">
<link title="Netcgi_dbi" rel="Chapter" href="Netcgi_dbi.html">
<link title="Netcgi1_compat" rel="Chapter" href="Netcgi1_compat.html">
<link title="Netcgi_test" rel="Chapter" href="Netcgi_test.html">
<link title="Netcgi_porting" rel="Chapter" href="Netcgi_porting.html">
<link title="Netcgi_plex" rel="Chapter" href="Netcgi_plex.html">
<link title="Http_client" rel="Chapter" href="Http_client.html">
<link title="Telnet_client" rel="Chapter" href="Telnet_client.html">
<link title="Ftp_data_endpoint" rel="Chapter" href="Ftp_data_endpoint.html">
<link title="Ftp_client" rel="Chapter" href="Ftp_client.html">
<link title="Nethttpd_types" rel="Chapter" href="Nethttpd_types.html">
<link title="Nethttpd_kernel" rel="Chapter" href="Nethttpd_kernel.html">
<link title="Nethttpd_reactor" rel="Chapter" href="Nethttpd_reactor.html">
<link title="Nethttpd_engine" rel="Chapter" href="Nethttpd_engine.html">
<link title="Nethttpd_services" rel="Chapter" href="Nethttpd_services.html">
<link title="Nethttpd_plex" rel="Chapter" href="Nethttpd_plex.html">
<link title="Nethttpd_intro" rel="Chapter" href="Nethttpd_intro.html">
<link title="Netplex_types" rel="Chapter" href="Netplex_types.html">
<link title="Netplex_mp" rel="Chapter" href="Netplex_mp.html">
<link title="Netplex_mt" rel="Chapter" href="Netplex_mt.html">
<link title="Netplex_log" rel="Chapter" href="Netplex_log.html">
<link title="Netplex_controller" rel="Chapter" href="Netplex_controller.html">
<link title="Netplex_container" rel="Chapter" href="Netplex_container.html">
<link title="Netplex_sockserv" rel="Chapter" href="Netplex_sockserv.html">
<link title="Netplex_workload" rel="Chapter" href="Netplex_workload.html">
<link title="Netplex_main" rel="Chapter" href="Netplex_main.html">
<link title="Netplex_config" rel="Chapter" href="Netplex_config.html">
<link title="Netplex_kit" rel="Chapter" href="Netplex_kit.html">
<link title="Rpc_netplex" rel="Chapter" href="Rpc_netplex.html">
<link title="Netplex_cenv" rel="Chapter" href="Netplex_cenv.html">
<link title="Netplex_intro" rel="Chapter" href="Netplex_intro.html">
<link title="Netshm" rel="Chapter" href="Netshm.html">
<link title="Netshm_data" rel="Chapter" href="Netshm_data.html">
<link title="Netshm_hashtbl" rel="Chapter" href="Netshm_hashtbl.html">
<link title="Netshm_array" rel="Chapter" href="Netshm_array.html">
<link title="Netshm_intro" rel="Chapter" href="Netshm_intro.html">
<link title="Netconversion" rel="Chapter" href="Netconversion.html">
<link title="Netchannels" rel="Chapter" href="Netchannels.html">
<link title="Netstream" rel="Chapter" href="Netstream.html">
<link title="Mimestring" rel="Chapter" href="Mimestring.html">
<link title="Netmime" rel="Chapter" href="Netmime.html">
<link title="Netsendmail" rel="Chapter" href="Netsendmail.html">
<link title="Neturl" rel="Chapter" href="Neturl.html">
<link title="Netaddress" rel="Chapter" href="Netaddress.html">
<link title="Netbuffer" rel="Chapter" href="Netbuffer.html">
<link title="Netdate" rel="Chapter" href="Netdate.html">
<link title="Netencoding" rel="Chapter" href="Netencoding.html">
<link title="Netulex" rel="Chapter" href="Netulex.html">
<link title="Netaccel" rel="Chapter" href="Netaccel.html">
<link title="Netaccel_link" rel="Chapter" href="Netaccel_link.html">
<link title="Nethtml" rel="Chapter" href="Nethtml.html">
<link title="Netstring_str" rel="Chapter" href="Netstring_str.html">
<link title="Netstring_pcre" rel="Chapter" href="Netstring_pcre.html">
<link title="Netstring_mt" rel="Chapter" href="Netstring_mt.html">
<link title="Netmappings" rel="Chapter" href="Netmappings.html">
<link title="Netaux" rel="Chapter" href="Netaux.html">
<link title="Nethttp" rel="Chapter" href="Nethttp.html">
<link title="Netchannels_tut" rel="Chapter" href="Netchannels_tut.html">
<link title="Netmime_tut" rel="Chapter" href="Netmime_tut.html">
<link title="Netsendmail_tut" rel="Chapter" href="Netsendmail_tut.html">
<link title="Netulex_tut" rel="Chapter" href="Netulex_tut.html">
<link title="Neturl_tut" rel="Chapter" href="Neturl_tut.html">
<link title="Netsys" rel="Chapter" href="Netsys.html">
<link title="Netpop" rel="Chapter" href="Netpop.html">
<link title="Rpc_auth_dh" rel="Chapter" href="Rpc_auth_dh.html">
<link title="Rpc_key_service" rel="Chapter" href="Rpc_key_service.html">
<link title="Rpc_time" rel="Chapter" href="Rpc_time.html">
<link title="Rpc_auth_local" rel="Chapter" href="Rpc_auth_local.html">
<link title="Rtypes" rel="Chapter" href="Rtypes.html">
<link title="Xdr" rel="Chapter" href="Xdr.html">
<link title="Rpc" rel="Chapter" href="Rpc.html">
<link title="Rpc_program" rel="Chapter" href="Rpc_program.html">
<link title="Rpc_portmapper_aux" rel="Chapter" href="Rpc_portmapper_aux.html">
<link title="Rpc_packer" rel="Chapter" href="Rpc_packer.html">
<link title="Rpc_transport" rel="Chapter" href="Rpc_transport.html">
<link title="Rpc_client" rel="Chapter" href="Rpc_client.html">
<link title="Rpc_simple_client" rel="Chapter" href="Rpc_simple_client.html">
<link title="Rpc_portmapper_clnt" rel="Chapter" href="Rpc_portmapper_clnt.html">
<link title="Rpc_portmapper" rel="Chapter" href="Rpc_portmapper.html">
<link title="Rpc_server" rel="Chapter" href="Rpc_server.html">
<link title="Rpc_auth_sys" rel="Chapter" href="Rpc_auth_sys.html">
<link title="Rpc_intro" rel="Chapter" href="Rpc_intro.html">
<link title="Rpc_mapping_ref" rel="Chapter" href="Rpc_mapping_ref.html">
<link title="Rpc_ssl" rel="Chapter" href="Rpc_ssl.html">
<link title="Rpc_xti_client" rel="Chapter" href="Rpc_xti_client.html">
<link title="Shell_sys" rel="Chapter" href="Shell_sys.html">
<link title="Shell" rel="Chapter" href="Shell.html">
<link title="Shell_uq" rel="Chapter" href="Shell_uq.html">
<link title="Shell_mt" rel="Chapter" href="Shell_mt.html">
<link title="Shell_intro" rel="Chapter" href="Shell_intro.html">
<link title="Netsmtp" rel="Chapter" href="Netsmtp.html"><link title="Setup" rel="Section" href="#setup">
<link title="Apache" rel="Subsection" href="#3_Apache">
<link title="Other web severs" rel="Subsection" href="#3_Otherwebsevers">
<link title="Workers.properties" rel="Subsection" href="#3_Workersproperties">
<title>Ocamlnet 2 Reference Manual : Netcgi_ajp</title>
</head>
<body>
<div class="navbar"><a href="Netcgi.html">Previous</a>
&nbsp;<a href="index.html">Up</a>
&nbsp;<a href="Netcgi_scgi.html">Next</a>
</div>
<center><h1>Module <a href="type_Netcgi_ajp.html">Netcgi_ajp</a></h1></center>
<br>
<pre><span class="keyword">module</span> Netcgi_ajp: <code class="code">sig</code> <a href="Netcgi_ajp.html">..</a> <code class="code">end</code></pre>Apache JServ Protocol (AJP) 1.3 connector.
<p>

 See the <a href="Netcgi_ajp.html#setup"><i>Setup</i></a> section at the end of this file to know
 how to configure your web server.<br>
<hr width="100%">
<pre><span class="keyword">val</span> <a name="VALarg_parse"></a>arg_parse : <code class="type">(Arg.key * Arg.spec * Arg.doc) list -><br>       Arg.anon_fun -> Arg.usage_msg -> (string * string) list</code></pre><div class="info">
<code class="code">arg_parse speclist anon_fun usage_msg</code> parses the command line
      and return an associative list describing the content of the
      property file (see <a href="Netcgi_ajp.html#VALprops_of_file"><code class="code">Netcgi_ajp.props_of_file</code></a>).  This function
      allows to fakes the "java" command (JVM startup):
<p>
<ul>
<li>the option <code class="code">-classpath &lt;path&gt;</code> is ignored;</li>
<li>the first anonymous argument (Java class name) is ignored;</li>
<li>the second anonymous argument is the name of the property file;</li>
<li>other options are interpreted according to the <code class="code">speclist</code>.</li>
</ul>
<br>
<b>Raises</b> <code>Failure</code> and prints a usage message if the property file
      cannot be read.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALprops_of_file"></a>props_of_file : <code class="type">string -> (string * string) list</code></pre><div class="info">
<code class="code">props_of_file fname</code> parses the property file <code class="code">fname</code> and
      returns it as an associative list.  The following properties are
      used:
<p>
<ul>
<li>"bindaddress": The address the server socket is bound to.  Can be
      specified as IP address or hostname or "*" (default: "localhost").</li>
<li>"port": The port number the server socket is bound to.  Defaults to
      8007.</li>
<li>"security.authentication": If "true", the server expects that the
      web server authenticates itself.  Defaults to "true".</li>
<li>"security.challengeSize": The length of the challenge string.
      Defaults to 5.</li>
<li>"security.secretKey": The file containing the secret key used for
      authentication.</li>
<li>"security.allowHost": Only the web server with this IP address is
      allowed to connect (this option can occur several times).
      DNS names are resolved at startup time.</li>
<li>"jakarta.servletSubString": The substring that is used as indicator
      for the servlet name (for mod_jk only).  Defaults to "/servlets/".</li>
<li>"ocamlnet.https": Whether HTTPS is assumed as basic protocol or not.
      Defaults to "false".</li>
</ul>

      Other properties are ignored.<br>
<b>Raises</b> <code>Invalid_argument</code> if the file does not exist or is not readable.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALrun"></a>run : <code class="type">?props:(string * string) list -><br>       ?config:<a href="Netcgi.html#TYPEconfig">Netcgi.config</a> -><br>       ?script_name:string -><br>       ?allow:(Unix.sockaddr -> bool) -><br>       ?output_type:<a href="Netcgi.html#TYPEoutput_type">Netcgi.output_type</a> -><br>       ?arg_store:<a href="Netcgi.html#TYPEarg_store">Netcgi.arg_store</a> -><br>       ?exn_handler:<a href="Netcgi.html#TYPEexn_handler">Netcgi.exn_handler</a> -> ?port:int -> (<a href="Netcgi.cgi.html">Netcgi.cgi</a> -> unit) -> unit</code></pre><div class="info">
<code class="code">run f</code> executes <code class="code">f cgi</code> for each AJP request.<br>
</div>
<div class="param_info"><code class="code">config</code> : Default: <a href="Netcgi.html#VALdefault_config"><code class="code">Netcgi.default_config</code></a></div>
<div class="param_info"><code class="code">allow</code> : Tells whether a connection from the socket is allowed.
                   Default: allow from all.</div>
<div class="param_info"><code class="code">output_type</code> : Default: <code class="code">`Direct ""</code></div>
<div class="param_info"><code class="code">arg_store</code> : Default: <code class="code">`Automatic</code> for all arguments.</div>
<div class="param_info"><code class="code">exn_handler</code> : See <a href="Netcgi.html#TYPEexn_handler"><code class="code">Netcgi.exn_handler</code></a>.  Default: delegate
      all exceptions to the default handler.</div>
<div class="param_info"><code class="code">port</code> : The port used by the web server to send the requests
                  (Default: 8009).</div>
<pre><span class="keyword">val</span> <a name="VALhandle_request"></a>handle_request : <code class="type">?script_name:string -><br>       <a href="Netcgi.html#TYPEconfig">Netcgi.config</a> -><br>       <a href="Netcgi.html#TYPEoutput_type">Netcgi.output_type</a> -><br>       <a href="Netcgi.html#TYPEarg_store">Netcgi.arg_store</a> -><br>       <a href="Netcgi.html#TYPEexn_handler">Netcgi.exn_handler</a> -><br>       (<a href="Netcgi.cgi.html">Netcgi.cgi</a> -> unit) -><br>       log:(string -> unit) option -> Unix.file_descr -> <a href="Netcgi.html#TYPEconnection_directive">Netcgi.connection_directive</a></code></pre><div class="info">
<code class="code">handle_request config output_type arg_store eh f ~log fd</code>: This
      is a lower-level interface that processes exactly one request
      arriving on the existing connection <code class="code">fd</code>.
<p>

      <code class="code">log</code> is the error logger function or <code class="code">None</code>, in which case
      errors are passed through to the FCGI client.
<p>

      The other arguments are just like for <code class="code">run</code>.
<p>

      The return value indicates whether the connection can be kept
      open or must be closed.<br>
</div>
<br>
<a name="setup"></a>
<h2>Setup</h2>
<p>

    <a name="3_Apache"></a>
<h3>Apache</h3>
<p>

    You need to use mod_jk to have support for AJP/1.3.  To install
    it, please see
    <a href="http://tomcat.apache.org/tomcat-3.3-doc/mod_jk-howto.html">Working
    with mod_jk</a>.
<p>

    In httpd.conf or in a file, say mod_jk.conf, in
    /etc/apache2/conf.d/ (or /etc/apache2/conf.d/ for Apache 1.x), add
    the following:
    <pre>    # Shared memory file name (Unix only).  The parent dir must exist.
    JkShmFile  /var/tmp/jk-runtime-status
    LoadModule jk_module mod_jk.so
    # Declare the module for &lt;IfModule&gt; (remove this line on Apache 2.x)
    AddModule  mod_jk.c

    &lt;IfModule mod_jk.c&gt;
      # Configure mod_jk
      # Apache 1.x
      #JkWorkersFile /etc/libapache-mod-jk/workers.properties
      #JkLogFile     /var/log/apache/mod_jk.log
      # Apache 2.x
      JkWorkersFile /etc/libapache2-mod-jk/workers.properties
      JkLogFile     /var/log/apache2/mod_jk.log
      JkLogLevel    info

      # JkMount [URL prefix] [Worker name]
      JkMount /*.jsp ajp13_worker
      JkMount /servlet/* ajp13_worker
    &lt;/IfModule&gt;
   </pre>
<p>

    <a name="3_Otherwebsevers"></a>
<h3>Other web severs</h3>
<p>

    Please go to this
    <a href="http://tomcat.apache.org/connectors-doc/index.html">configuration
    page</a>.  Mail us specific instructions or tips for other web
    servers so we can include them here.
<p>

    <a name="3_Workersproperties"></a>
<h3>Workers.properties</h3>
<p>

    Here is an example of workers.properties:
    <pre>    # Comma separated list of worker names:
    worker.list=ajp13_worker
    # Set properties for ajp13_worker
    worker.ajp13_worker.type=ajp13
    worker.ajp13_worker.host=localhost
    worker.ajp13_worker.port=8009
    worker.ajp13_worker.cachesize=1
   </pre><br>
</body></html>