worker.html.en revision ffb01336be79c64046b636e59fa8ddca8ec029ed
97a9a944b5887e91042b019776c41d5dd74557aferikabele<?xml version="1.0" encoding="ISO-8859-1"?>
97a9a944b5887e91042b019776c41d5dd74557aferikabele<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
97a9a944b5887e91042b019776c41d5dd74557aferikabele<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
a945f35eff8b6a88009ce73de6d4c862ce58de3cslive XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
a945f35eff8b6a88009ce73de6d4c862ce58de3cslive This file is generated from xml source: DO NOT EDIT
a945f35eff8b6a88009ce73de6d4c862ce58de3cslive XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5a58787efeb02a1c3f06569d019ad81fd2efa06end -->
5a58787efeb02a1c3f06569d019ad81fd2efa06end<title>worker - Apache HTTP Server</title>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
5a58787efeb02a1c3f06569d019ad81fd2efa06end<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
5a58787efeb02a1c3f06569d019ad81fd2efa06end<link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
5a58787efeb02a1c3f06569d019ad81fd2efa06end<link href="/images/favicon.ico" rel="shortcut icon" /></head>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<body>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<div id="page-header">
5a58787efeb02a1c3f06569d019ad81fd2efa06end<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p>
52fff662005b1866a3ff09bb6c902800c5cc6dedjerenkrantz<p class="apache">Apache HTTP Server Version 2.3</p>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<img alt="" src="/images/feather.gif" /></div>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<div id="path">
4b5981e276e93df97c34e4da05ca5cf8bbd937dand<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.3</a> &gt; <a href="./">Modules</a></div>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<div id="page-content">
a63f0ab647ad2ab72efc9bea7a66e24e9ebc5cc2nd<div id="preamble"><h1>Apache MPM worker</h1>
3b3b7fc78d1f5bfc2769903375050048ff41ff26nd<div class="toplang">
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd<p><span>Available Languages: </span><a href="/de/mod/worker.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd<a href="/en/mod/worker.html" title="English">&nbsp;en&nbsp;</a> |
e1e8390280254f7f0580d701e583f670643d4f3fnilgun<a href="/ja/mod/worker.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
e1e8390280254f7f0580d701e583f670643d4f3fnilgun<a href="/tr/mod/worker.html" hreflang="tr" rel="alternate" title="T�rk�e">&nbsp;tr&nbsp;</a></p>
3b3b7fc78d1f5bfc2769903375050048ff41ff26nd</div>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Multi-Processing Module implementing a hybrid
5a58787efeb02a1c3f06569d019ad81fd2efa06end multi-threaded multi-process web server</td></tr>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<tr><th><a href="module-dict.html#Status">Status:</a></th><td>MPM</td></tr>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<tr><th><a href="module-dict.html#ModuleIdentifier">Module�Identifier:</a></th><td>mpm_worker_module</td></tr>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<tr><th><a href="module-dict.html#SourceFile">Source�File:</a></th><td>worker.c</td></tr></table>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<h3>Summary</h3>
5a58787efeb02a1c3f06569d019ad81fd2efa06end
06ba4a61654b3763ad65f52283832ebf058fdf1cslive <p>This Multi-Processing Module (MPM) implements a hybrid
ced7ef1f8c0df1805da0e87dbc5a1b6282910573nd multi-process multi-threaded server. By using threads to serve
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive requests, it is able to serve a large number of requests with
ced7ef1f8c0df1805da0e87dbc5a1b6282910573nd fewer system resources than a process-based server. However, it
b21197dc8e6b8c764fdcc24d4bae8b0eebb6bc4end retains much of the stability of a process-based server by
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive keeping multiple processes available, each with many threads.</p>
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive <p>The most important directives used to control this MPM are
97a9a944b5887e91042b019776c41d5dd74557aferikabele <code class="directive"><a href="/mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code>, which
f8396ed8364b56ec8adeaa49cac35a929758a29eslive controls the number of threads deployed by each child process and
ffb01336be79c64046b636e59fa8ddca8ec029edsf <code class="directive"><a href="/mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code>, which
f8396ed8364b56ec8adeaa49cac35a929758a29eslive controls the maximum total number of threads that may be
f8396ed8364b56ec8adeaa49cac35a929758a29eslive launched.</p>
5a58787efeb02a1c3f06569d019ad81fd2efa06end</div>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<div id="quickview"><h3 class="directives">Directives</h3>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<ul id="toc">
5a58787efeb02a1c3f06569d019ad81fd2efa06end<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
deeee6bb6fd94c0ba5f3730b58abd9d299c89ccdnd<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#enableexceptionhook">EnableExceptionHook</a></li>
4db28ee269aa06f7c6232e11cd01f58c3349af23noodl<li><img alt="" src="/images/right.gif" /> <a href="mod_unixd.html#group">Group</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#listen">Listen</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#listenbacklog">ListenBacklog</a></li>
4a31db3c3a0202003c1b9f87affa7cc143e120e5sf<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#maxconnectionsperchild">MaxConnectionsPerChild</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#maxmemfree">MaxMemFree</a></li>
ffb01336be79c64046b636e59fa8ddca8ec029edsf<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#maxsparethreads">MaxSpareThreads</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#minsparethreads">MinSpareThreads</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#pidfile">PidFile</a></li>
2bc7f1cf720973a67f8ff7a8d523e40569ae5b6cnd<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#receivebuffersize">ReceiveBufferSize</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#scoreboardfile">ScoreBoardFile</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#sendbuffersize">SendBufferSize</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#serverlimit">ServerLimit</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#startservers">StartServers</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#threadlimit">ThreadLimit</a></li>
117c1f888a14e73cdd821dc6c23eb0411144a41cnd<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#threadsperchild">ThreadsPerChild</a></li>
87ffb6e33f3cbef3b9bb406cc2d27039fa336eaatrawick<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#threadstacksize">ThreadStackSize</a></li>
4db28ee269aa06f7c6232e11cd01f58c3349af23noodl<li><img alt="" src="/images/right.gif" /> <a href="mod_unixd.html#user">User</a></li>
5a58787efeb02a1c3f06569d019ad81fd2efa06end</ul>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<h3>Topics</h3>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<ul id="topics">
5a58787efeb02a1c3f06569d019ad81fd2efa06end<li><img alt="" src="/images/down.gif" /> <a href="#how-it-works">How it Works</a></li>
5a58787efeb02a1c3f06569d019ad81fd2efa06end</ul><h3>See also</h3>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<ul class="seealso">
654d8eb036bedc99e90e11910ee02d3421417697rbowen<li><a href="/bind.html">Setting which addresses and ports Apache HTTP Server uses</a></li>
5a58787efeb02a1c3f06569d019ad81fd2efa06end</ul></div>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<div class="section">
5a58787efeb02a1c3f06569d019ad81fd2efa06end<h2><a name="how-it-works" id="how-it-works">How it Works</a></h2>
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick <p>A single control process (the parent) is responsible for launching
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick child processes. Each child process creates a fixed number of server
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick threads as specified in the <code class="directive"><a href="/mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code> directive, as well
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick as a listener thread which listens for connections and passes them
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick to a server thread for processing when they arrive.</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive
654d8eb036bedc99e90e11910ee02d3421417697rbowen <p>Apache HTTP Server always tries to maintain a pool of <dfn>spare</dfn> or
06ba4a61654b3763ad65f52283832ebf058fdf1cslive idle server threads, which stand ready to serve incoming
06ba4a61654b3763ad65f52283832ebf058fdf1cslive requests. In this way, clients do not need to wait for a new
06ba4a61654b3763ad65f52283832ebf058fdf1cslive threads or processes to be created before their requests can be
92510838f2eb125726e15c5eb4f7a23c7a0396e4slive served. The number of processes that will initially launched is
97a9a944b5887e91042b019776c41d5dd74557aferikabele set by the <code class="directive"><a href="/mod/mpm_common.html#startservers">StartServers</a></code>
654d8eb036bedc99e90e11910ee02d3421417697rbowen directive. During operation, the server assesses the total number
92510838f2eb125726e15c5eb4f7a23c7a0396e4slive of idle threads in all processes, and forks or kills processes to
97a9a944b5887e91042b019776c41d5dd74557aferikabele keep this number within the boundaries specified by <code class="directive"><a href="/mod/mpm_common.html#minsparethreads">MinSpareThreads</a></code> and <code class="directive"><a href="/mod/mpm_common.html#maxsparethreads">MaxSpareThreads</a></code>. Since this
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive process is very self-regulating, it is rarely necessary to modify
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive these directives from their default values. The maximum number of
92510838f2eb125726e15c5eb4f7a23c7a0396e4slive clients that may be served simultaneously (i.e., the maximum total
92510838f2eb125726e15c5eb4f7a23c7a0396e4slive number of threads in all processes) is determined by the
ffb01336be79c64046b636e59fa8ddca8ec029edsf <code class="directive"><a href="/mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> directive.
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick The maximum number of active child processes is determined by
ffb01336be79c64046b636e59fa8ddca8ec029edsf the <code class="directive"><a href="/mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code>
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick directive divided by the <code class="directive"><a href="/mod/mpm_common.html#&#10; threadsperchild">
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick ThreadsPerChild</a></code> directive.</p>
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick <p>Two directives set hard limits on the number of active child
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick processes and the number of server threads in a child process,
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick and can only be changed by fully stopping the server and then
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick starting it again. <code class="directive"><a href="/mod/mpm_common.html#serverlimit&#10; ">ServerLimit
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick </a></code> is a hard limit on the number of active child
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick processes, and must be greater than or equal to the
ffb01336be79c64046b636e59fa8ddca8ec029edsf <code class="directive"><a href="/mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code>
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick directive divided by the <code class="directive"><a href="/mod/mpm_common.html#&#10; threadsperchild">
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick ThreadsPerChild</a></code> directive.
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick <code class="directive"><a href="/mod/mpm_common.html#threadlimit">ThreadLimit</a></code> is a hard
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick limit of the number of server threads, and must be greater than
77c77cf89621f21c8e2bbad63058b5eaa5f88d4ajim or equal to the <code class="directive"><a href="/mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code> directive.</p>
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick
ced7ef1f8c0df1805da0e87dbc5a1b6282910573nd <p>In addition to the set of active child processes, there may
ced7ef1f8c0df1805da0e87dbc5a1b6282910573nd be additional child processes which are terminating, but where at
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick least one server thread is still handling an existing client
ffb01336be79c64046b636e59fa8ddca8ec029edsf connection. Up to <code class="directive"><a href="/mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> terminating processes
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick may be present, though the actual number can be expected to be
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick much smaller. This behavior can be avoided by disabling the
ced7ef1f8c0df1805da0e87dbc5a1b6282910573nd termination of individual child processes, which is achieved using
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick the following:</p>
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick <ul>
4a31db3c3a0202003c1b9f87affa7cc143e120e5sf <li>set the value of <code class="directive"><a href="/mod/mpm_common.html#&#10; maxconnectionsperchild">
4a31db3c3a0202003c1b9f87affa7cc143e120e5sf MaxConnectionsPerChild</a></code> to zero</li>
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick <li>set the value of <code class="directive"><a href="/mod/mpm_common.html#&#10; maxsparethreads">
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick MaxSpareThreads</a></code> to the same value as
ffb01336be79c64046b636e59fa8ddca8ec029edsf <code class="directive"><a href="/mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code></li>
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick </ul>
92510838f2eb125726e15c5eb4f7a23c7a0396e4slive
92510838f2eb125726e15c5eb4f7a23c7a0396e4slive <p>A typical configuration of the process-thread controls in
97a9a944b5887e91042b019776c41d5dd74557aferikabele the <code class="module"><a href="/mod/worker.html">worker</a></code> MPM could look as follows:</p>
92510838f2eb125726e15c5eb4f7a23c7a0396e4slive
ea8a727ff298d2f5368b55b7ae8d87091ae106e7nd <div class="example"><p><code>
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick ServerLimit 16<br />
ea8a727ff298d2f5368b55b7ae8d87091ae106e7nd StartServers 2<br />
ffb01336be79c64046b636e59fa8ddca8ec029edsf MaxRequestWorkers 150<br />
ea8a727ff298d2f5368b55b7ae8d87091ae106e7nd MinSpareThreads 25<br />
ea8a727ff298d2f5368b55b7ae8d87091ae106e7nd MaxSpareThreads 75<br />
8a6d5edcb07aeccca7afba02a17dd6904d6b206ctrawick ThreadsPerChild 25
ea8a727ff298d2f5368b55b7ae8d87091ae106e7nd </code></p></div>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive
e8d485701957d5c6de870111c112e168a894d49and <p>While the parent process is usually started as <code>root</code>
e8d485701957d5c6de870111c112e168a894d49and under Unix in order to bind to port 80, the child processes and threads
654d8eb036bedc99e90e11910ee02d3421417697rbowen are launched by the server as a less-privileged user. The <code class="directive"><a href="/mod/mod_unixd.html#user">User</a></code> and <code class="directive"><a href="/mod/mod_unixd.html#group">Group</a></code> directives are used to set
654d8eb036bedc99e90e11910ee02d3421417697rbowen the privileges of the Apache HTTP Server child processes. The child processes
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive must be able to read all the content that will be served, but
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive should have as few privileges beyond that as possible. In
9bcfc3697a91b5215893a7d0206865b13fc72148nd addition, unless <code class="program"><a href="/programs/suexec.html">suexec</a></code> is used,
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive these directives also set the privileges which will be inherited
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive by CGI scripts.</p>
06ba4a61654b3763ad65f52283832ebf058fdf1cslive
4a31db3c3a0202003c1b9f87affa7cc143e120e5sf <p><code class="directive"><a href="/mod/mpm_common.html#maxconnectionsperchild">MaxConnectionsPerChild</a></code>
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive controls how frequently the server recycles processes by killing
9b6a3a558cc90ffdaa0b50bd02546ffec424ded7slive old ones and launching new ones.</p>
709e3a21ba73b8433462959cd56c773454b34441trawick
709e3a21ba73b8433462959cd56c773454b34441trawick <p>This MPM uses the <code>mpm-accept</code> mutex to serialize
709e3a21ba73b8433462959cd56c773454b34441trawick access to incoming connections when subject to the thundering herd
709e3a21ba73b8433462959cd56c773454b34441trawick problem (generally, when there are multiple listening sockets).
709e3a21ba73b8433462959cd56c773454b34441trawick The implementation aspects of this mutex can be configured with the
709e3a21ba73b8433462959cd56c773454b34441trawick <code class="directive"><a href="/mod/core.html#mutex">Mutex</a></code> directive. The <a href="/misc/perf-tuning.html">performance hints</a>
709e3a21ba73b8433462959cd56c773454b34441trawick documentation has additional information about this mutex.</p>
5a58787efeb02a1c3f06569d019ad81fd2efa06end</div>
5a58787efeb02a1c3f06569d019ad81fd2efa06end</div>
3b3b7fc78d1f5bfc2769903375050048ff41ff26nd<div class="bottomlang">
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd<p><span>Available Languages: </span><a href="/de/mod/worker.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd<a href="/en/mod/worker.html" title="English">&nbsp;en&nbsp;</a> |
e1e8390280254f7f0580d701e583f670643d4f3fnilgun<a href="/ja/mod/worker.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
e1e8390280254f7f0580d701e583f670643d4f3fnilgun<a href="/tr/mod/worker.html" hreflang="tr" rel="alternate" title="T�rk�e">&nbsp;tr&nbsp;</a></p>
3b3b7fc78d1f5bfc2769903375050048ff41ff26nd</div><div id="footer">
9c1260efa52c82c2a58e5b5f20cd6902563d95f5rbowen<p class="apache">Copyright 2011 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p></div>
5a58787efeb02a1c3f06569d019ad81fd2efa06end</body></html>