]> granicus.if.org Git - apache/blob - docs/manual/mod/worker.html.de
Adding updated mod_ssl HOWTO to the website
[apache] / docs / manual / mod / worker.html.de
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de"><head><!--
4         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5               This file is generated from xml source: DO NOT EDIT
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7       -->
8 <title>worker - Apache HTTP Server</title>
9 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
13 <body>
14 <div id="page-header">
15 <p class="menu"><a href="../mod/">Module</a> | <a href="../mod/directives.html">Direktiven</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossar</a> | <a href="../sitemap.html">Seitenindex</a></p>
16 <p class="apache">Apache HTTP Server Version 2.3</p>
17 <img alt="" src="../images/feather.gif" /></div>
18 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
19 <div id="path">
20 <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/">Dokumentation</a> &gt; <a href="../">Version 2.3</a> &gt; <a href="./">Module</a></div>
21 <div id="page-content">
22 <div id="preamble"><h1>Apache-MPM worker</h1>
23 <div class="toplang">
24 <p><span>Verfügbare Sprachen: </span><a href="../de/mod/worker.html" title="Deutsch">&nbsp;de&nbsp;</a> |
25 <a href="../en/mod/worker.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
26 <a href="../ja/mod/worker.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a></p>
27 </div>
28 <div class="outofdate">Diese Übersetzung ist möglicherweise
29             nicht mehr aktuell. Bitte prüfen Sie die englische Version auf
30             die neuesten Änderungen.</div>
31 <table class="module"><tr><th><a href="module-dict.html#Description">Beschreibung:</a></th><td>Multi-Processing-Modul, das einen Hybrid-Webserver mit
32   Multi-Thread und Multi-Prozess-Unterstützung implementiert</td></tr>
33 <tr><th><a href="module-dict.html#Status">Status:</a></th><td>MPM</td></tr>
34 <tr><th><a href="module-dict.html#ModuleIdentifier">Modulbezeichner:</a></th><td>mpm_worker_module</td></tr>
35 <tr><th><a href="module-dict.html#SourceFile">Quelltext-Datei:</a></th><td>worker.c</td></tr></table>
36 <h3>Zusammenfassung</h3>
37
38     <p>Dieses Multi-Processing-Modul (MPM) implementiert einen Hybrid-Server
39     mit Multi-Thread und Multi-Prozess-Unterstützung. Durch die Verwendung
40     von Threads für die Bedienung von Anfragen ist er in der Lage,
41     eine große Anzahl von Anfragen mit weniger Systemressourcen als
42     ein Prozess-basierter Server zu bedienen. Er behält jedoch viel von
43     der Stabilität eines Prozess-basierten Servers bei, indem er
44     mehrere Prozesse verfügbar hält, jeden mit etlichen Threads.</p>
45
46     <p>Die wichtigsten Direktiven zur Steuerung des MPMs sind <code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code>, welche die Anzahl
47     der Threads beeinflusst, die von jedem Kindprozess verwendet werden, und
48     <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code>, welche die
49     maximale Gesamtzahl an Threads regelt, die gestartet werden
50     können.</p>
51 </div>
52 <div id="quickview"><h3 class="directives">Direktiven</h3>
53 <ul id="toc">
54 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#acceptmutex">AcceptMutex</a></li>
55 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
56 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#enableexceptionhook">EnableExceptionHook</a></li>
57 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#group">Group</a></li>
58 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#listen">Listen</a></li>
59 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#listenbacklog">ListenBacklog</a></li>
60 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#lockfile">LockFile</a></li>
61 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#maxclients">MaxClients</a></li>
62 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#maxmemfree">MaxMemFree</a></li>
63 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></li>
64 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#maxsparethreads">MaxSpareThreads</a></li>
65 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#minsparethreads">MinSpareThreads</a></li>
66 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#pidfile">PidFile</a></li>
67 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#receivebuffersize">ReceiveBufferSize</a></li>
68 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#scoreboardfile">ScoreBoardFile</a></li>
69 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#sendbuffersize">SendBufferSize</a></li>
70 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#serverlimit">ServerLimit</a></li>
71 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#startservers">StartServers</a></li>
72 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#threadlimit">ThreadLimit</a></li>
73 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#threadsperchild">ThreadsPerChild</a></li>
74 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#threadstacksize">ThreadStackSize</a></li>
75 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#user">User</a></li>
76 </ul>
77 <h3>Themen</h3>
78 <ul id="topics">
79 <li><img alt="" src="../images/down.gif" /> <a href="#how-it-works">Arbeitsweise</a></li>
80 </ul><h3>Siehe auch</h3>
81 <ul class="seealso">
82 <li><a href="../bind.html">Bestimmen der vom Apache verwendeten Adressen
83   und Ports</a></li>
84 </ul></div>
85 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
86 <div class="section">
87 <h2><a name="how-it-works" id="how-it-works">Arbeitsweise</a></h2>
88     <p>Ein einzelner Steuerprozess (der Elternprozess) ist für den
89     Start der Kindprozesse verantwortlich. Jeder Kindprozess erstellt eine
90     feste Anzahl von Server-Threads, wie durch die <code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code>-Direktive
91     angegeben, sowie einen "Listener-Thread", der auf Verbindungen wartet und
92     diese an einen Server-Thread zur Bearbeitung weiterreicht, sobald sie
93     eintreffen.</p>
94
95     <p>Der Apache versucht immer, einen Vorrat von <dfn>freien</dfn> oder
96     unbeschäftigten Threads zu verwalten, die zur Bedienung
97     hereinkommender Anfragen bereit stehen. Auf diese Weise brauchen
98     Clients nicht auf die Erstellung eines neuen Threads oder Prozesses
99     zu warten, bevor ihre Anfrage bedient werden kann. Die Anzahl der
100     Prozesse, die anfangs gestartet wird, wird mit der Direktive
101     <code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code> festgelegt.
102     Dann, während des Betriebes, berechnet der Apache die Gesamtzahl
103     der unbeschäftigten Threads und forkt oder beendet Prozesse, um diese
104     Anzahl innerhalb der durch <code class="directive"><a href="../mod/mpm_common.html#minsparethreads">MinSpareThreads</a></code> und <code class="directive"><a href="../mod/mpm_common.html#maxsparethreads">MaxSpareThreads</a></code> angegebenen Grenzen
105     zu halten. Da dieser Prozess sehr selbstregulierend ist, ist es nur selten
106     notwendig, die Voreinstellung dieser Direktiven zu ändern. Die
107     maximale Anzahl Clients, die gleichzeitig bedient werden kann (d.h.
108     die maximale Gesamtzahl der Threads in allen Prozessen), wird mit der
109     Direktive <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code>
110     festgelegt. Die maximale Anzahl der aktiven Kindprozesse ergibt sich aus
111     <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code> dividiert durch
112     <code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code>.</p>
113
114     <p>Zwei Direktiven legen harte Limits für die Anzahl der aktiven
115     Kindprozesse fest und können nur geändert werden, indem der Server
116     komplett gestoppt und dann wieder neu gestartet wird. <code class="directive"><a href="../mod/mpm_common.html#serverlimit">ServerLimit</a></code> stellt die obere Grenze für
117     die Anzahl der aktiven Kindprozesse dar und muss größer oder
118     gleich dem Quotienten aus <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code> und <code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code> sein. <code class="directive"><a href="../mod/mpm_common.html#threadlimit">ThreadLimit</a></code> ist die obere Grenze für
119     die Anzahl der Server-Threads und muss größer oder gleich
120     <code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code> sein. Sofern für
121     diese Direktiven keine Voreinstellungen verwendet werden, sollten sie vor
122     allen anderen <code class="module"><a href="../mod/worker.html">worker</a></code>-Direktiven platziert werden.</p>
123
124     <p>Neben den normalen aktiven Kindprozessen gibt es möglicherweise noch
125     zusätzliche Kindprozesse, welche gerade beendet werden, wo allerdings
126     zumindest noch ein Server-Thread eine existierende Verbindung bearbeitet.
127     Obwohl die tatsächlich zu erwartende Anzahl deutlich kleiner ist,
128     können bis zu <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code>
129     solcher Prozesse auftreten. Dieses Verhalten können Sie vermeiden,
130     indem Sie die Terminierung einzelner Kindprozesse wie folgt abschalten:</p>
131
132     <ul>
133        <li>setzen Sie den Wert von <code class="directive"><a href="../mod/mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></code> auf Null</li>
134
135        <li>setzen Sie den Wert von <code class="directive"><a href="../mod/mpm_common.html#maxsparethreads">MaxSpareThreads</a></code> auf den gleichen Wert wie <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code></li>
136     </ul>
137
138     <p>Eine typische Konfiguration der Prozess-Thread-Steuerung für
139     das MPM <code class="module"><a href="../mod/worker.html">worker</a></code> könnte wie folgt aussehen:</p>
140
141     <div class="example"><p><code>
142       ServerLimit         16<br />
143       StartServers         2<br />
144       MaxClients         150<br />
145       MinSpareThreads     25<br />
146       MaxSpareThreads     75<br />
147       ThreadsPerChild     25
148     </code></p></div>
149
150     <p>Während der Elternprozess unter Unix normalerweise als
151     <code>root</code> gestartet wird, um sich an Port 80 binden zu können,
152     werden die Kindprozesse und Threads unter einem weniger privilegierten
153     Benutzer gestartet. Die Direktiven <code class="directive"><a href="../mod/mpm_common.html#user">User</a></code> und <code class="directive"><a href="../mod/mpm_common.html#group">Group</a></code> werden dazu verwendet, die
154     Privilegien der Apache-Kindprozesse festzulegen. Die Kindprozesse
155     müssen in der Lage sein, alle Inhalte zu lesen, die sie ausliefern
156     sollen, sollten darüber hinaus jedoch so wenig wie möglich Rechte
157     besitzen. Zusätzlich, solange nicht <code class="program"><a href="../programs/suexec.html">suexec</a></code> verwendet wird, legen diese
158     Direktiven auch die Privilegien fest, die von CGI-Skripts
159     geerbt werden.</p>
160
161     <p><code class="directive"><a href="../mod/mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></code>
162     bestimmt, wie häufig der Server Prozesse erneuert, indem er alte
163     beendet und neue startet.</p>
164 </div>
165 </div>
166 <div class="bottomlang">
167 <p><span>Verfügbare Sprachen: </span><a href="../de/mod/worker.html" title="Deutsch">&nbsp;de&nbsp;</a> |
168 <a href="../en/mod/worker.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
169 <a href="../ja/mod/worker.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a></p>
170 </div><div id="footer">
171 <p class="apache">Copyright 1995-2005 The Apache Software Foundation or its licensors, as applicable.<br />Lizenziert unter der <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
172 <p class="menu"><a href="../mod/">Module</a> | <a href="../mod/directives.html">Direktiven</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossar</a> | <a href="../sitemap.html">Seitenindex</a></p></div>
173 </body></html>