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" /><link rel="stylesheet" type="text/css" href="/style/css/prettify.css" /> 12<script src="/style/scripts/prettify.js" type="text/javascript"> 13</script> 14 15<link href="/images/favicon.ico" rel="shortcut icon" /></head> 16<body> 17<div id="page-header"> 18<p class="menu"><a href="/mod/">Module</a> | <a href="/mod/directives.html">Direktiven</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">Glossar</a> | <a href="/sitemap.html">Seitenindex</a></p> 19<p class="apache">Apache HTTP Server Version 2.2</p> 20<img alt="" src="/images/feather.gif" /></div> 21<div class="up"><a href="./"><img title="<-" alt="<-" src="/images/left.gif" /></a></div> 22<div id="path"> 23<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP-Server</a> > <a href="http://httpd.apache.org/docs/">Dokumentation</a> > <a href="../">Version 2.2</a> > <a href="./">Module</a></div> 24<div id="page-content"> 25<div id="preamble"><h1>Apache-MPM worker</h1> 26<div class="toplang"> 27<p><span>Verf�gbare Sprachen: </span><a href="/de/mod/worker.html" title="Deutsch"> de </a> | 28<a href="/en/mod/worker.html" hreflang="en" rel="alternate" title="English"> en </a> | 29<a href="/ja/mod/worker.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | 30<a href="/tr/mod/worker.html" hreflang="tr" rel="alternate" title="T�rk�e"> tr </a></p> 31</div> 32<div class="outofdate">Diese �bersetzung ist m�glicherweise 33 nicht mehr aktuell. Bitte pr�fen Sie die englische Version auf 34 die neuesten �nderungen.</div> 35<table class="module"><tr><th><a href="module-dict.html#Description">Beschreibung:</a></th><td>Multi-Processing-Modul, das einen Hybrid-Webserver mit 36 Multi-Thread und Multi-Prozess-Unterst�tzung implementiert</td></tr> 37<tr><th><a href="module-dict.html#Status">Status:</a></th><td>MPM</td></tr> 38<tr><th><a href="module-dict.html#ModuleIdentifier">Modulbezeichner:</a></th><td>mpm_worker_module</td></tr> 39<tr><th><a href="module-dict.html#SourceFile">Quelltext-Datei:</a></th><td>worker.c</td></tr></table> 40<h3>Zusammenfassung</h3> 41 42 <p>Dieses Multi-Processing-Modul (MPM) implementiert einen Hybrid-Server 43 mit Multi-Thread und Multi-Prozess-Unterst�tzung. Durch die Verwendung 44 von Threads f�r die Bedienung von Anfragen ist er in der Lage, 45 eine gro�e Anzahl von Anfragen mit weniger Systemressourcen als 46 ein Prozess-basierter Server zu bedienen. Er beh�lt jedoch viel von 47 der Stabilit�t eines Prozess-basierten Servers bei, indem er 48 mehrere Prozesse verf�gbar h�lt, jeden mit etlichen Threads.</p> 49 50 <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 51 der Threads beeinflusst, die von jedem Kindprozess verwendet werden, und 52 <code class="directive"><a href="/mod/mpm_common.html#maxclients">MaxClients</a></code>, welche die 53 maximale Gesamtzahl an Threads regelt, die gestartet werden 54 k�nnen.</p> 55</div> 56<div id="quickview"><h3 class="directives">Direktiven</h3> 57<ul id="toc"> 58<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#acceptmutex">AcceptMutex</a></li> 59<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li> 60<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#enableexceptionhook">EnableExceptionHook</a></li> 61<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#group">Group</a></li> 62<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#listen">Listen</a></li> 63<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#listenbacklog">ListenBacklog</a></li> 64<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#lockfile">LockFile</a></li> 65<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#maxclients">MaxClients</a></li> 66<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#maxmemfree">MaxMemFree</a></li> 67<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></li> 68<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#maxsparethreads">MaxSpareThreads</a></li> 69<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#minsparethreads">MinSpareThreads</a></li> 70<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#pidfile">PidFile</a></li> 71<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#receivebuffersize">ReceiveBufferSize</a></li> 72<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#scoreboardfile">ScoreBoardFile</a></li> 73<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#sendbuffersize">SendBufferSize</a></li> 74<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#serverlimit">ServerLimit</a></li> 75<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#startservers">StartServers</a></li> 76<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#threadlimit">ThreadLimit</a></li> 77<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#threadsperchild">ThreadsPerChild</a></li> 78<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#threadstacksize">ThreadStackSize</a></li> 79<li><img alt="" src="/images/right.gif" /> <a href="mpm_common.html#user">User</a></li> 80</ul> 81<h3>Themen</h3> 82<ul id="topics"> 83<li><img alt="" src="/images/down.gif" /> <a href="#how-it-works">Arbeitsweise</a></li> 84</ul><h3>Siehe auch</h3> 85<ul class="seealso"> 86<li><a href="/bind.html">Bestimmen der vom Apache verwendeten Adressen 87 und Ports</a></li> 88</ul><ul class="seealso"><li><a href="#comments_section">Kommentare</a></li></ul></div> 89<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 90<div class="section"> 91<h2><a name="how-it-works" id="how-it-works">Arbeitsweise</a></h2> 92 <p>Ein einzelner Steuerprozess (der Elternprozess) ist f�r den 93 Start der Kindprozesse verantwortlich. Jeder Kindprozess erstellt eine 94 feste Anzahl von Server-Threads, wie durch die <code class="directive"><a href="/mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code>-Direktive 95 angegeben, sowie einen "Listener-Thread", der auf Verbindungen wartet und 96 diese an einen Server-Thread zur Bearbeitung weiterreicht, sobald sie 97 eintreffen.</p> 98 99 <p>Der Apache versucht immer, einen Vorrat von <dfn>freien</dfn> oder 100 unbesch�ftigten Threads zu verwalten, die zur Bedienung 101 hereinkommender Anfragen bereit stehen. Auf diese Weise brauchen 102 Clients nicht auf die Erstellung eines neuen Threads oder Prozesses 103 zu warten, bevor ihre Anfrage bedient werden kann. Die Anzahl der 104 Prozesse, die anfangs gestartet wird, wird mit der Direktive 105 <code class="directive"><a href="/mod/mpm_common.html#startservers">StartServers</a></code> festgelegt. 106 Dann, w�hrend des Betriebes, berechnet der Apache die Gesamtzahl 107 der unbesch�ftigten Threads und forkt oder beendet Prozesse, um diese 108 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 109 zu halten. Da dieser Prozess sehr selbstregulierend ist, ist es nur selten 110 notwendig, die Voreinstellung dieser Direktiven zu �ndern. Die 111 maximale Anzahl Clients, die gleichzeitig bedient werden kann (d.h. 112 die maximale Gesamtzahl der Threads in allen Prozessen), wird mit der 113 Direktive <code class="directive"><a href="/mod/mpm_common.html#maxclients">MaxClients</a></code> 114 festgelegt. Die maximale Anzahl der aktiven Kindprozesse ergibt sich aus 115 <code class="directive"><a href="/mod/mpm_common.html#maxclients">MaxClients</a></code> dividiert durch 116 <code class="directive"><a href="/mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code>.</p> 117 118 <p>Zwei Direktiven legen harte Limits f�r die Anzahl der aktiven 119 Kindprozesse fest und k�nnen nur ge�ndert werden, indem der Server 120 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 121 die Anzahl der aktiven Kindprozesse dar und muss gr��er oder 122 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 123 die Anzahl der Server-Threads und muss gr��er oder gleich 124 <code class="directive"><a href="/mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code> sein. Sofern f�r 125 diese Direktiven keine Voreinstellungen verwendet werden, sollten sie vor 126 allen anderen <code class="module"><a href="/mod/worker.html">worker</a></code>-Direktiven platziert werden.</p> 127 128 <p>Neben den normalen aktiven Kindprozessen gibt es m�glicherweise noch 129 zus�tzliche Kindprozesse, welche gerade beendet werden, wo allerdings 130 zumindest noch ein Server-Thread eine existierende Verbindung bearbeitet. 131 Obwohl die tats�chlich zu erwartende Anzahl deutlich kleiner ist, 132 k�nnen bis zu <code class="directive"><a href="/mod/mpm_common.html#maxclients">MaxClients</a></code> 133 solcher Prozesse auftreten. Dieses Verhalten k�nnen Sie vermeiden, 134 indem Sie die Terminierung einzelner Kindprozesse wie folgt abschalten:</p> 135 136 <ul> 137 <li>setzen Sie den Wert von <code class="directive"><a href="/mod/mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></code> auf Null</li> 138 139 <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> 140 </ul> 141 142 <p>Eine typische Konfiguration der Prozess-Thread-Steuerung f�r 143 das MPM <code class="module"><a href="/mod/worker.html">worker</a></code> k�nnte wie folgt aussehen:</p> 144 145 <div class="example"><p><code> 146 ServerLimit 16<br /> 147 StartServers 2<br /> 148 MaxClients 150<br /> 149 MinSpareThreads 25<br /> 150 MaxSpareThreads 75<br /> 151 ThreadsPerChild 25 152 </code></p></div> 153 154 <p>W�hrend der Elternprozess unter Unix normalerweise als 155 <code>root</code> gestartet wird, um sich an Port 80 binden zu k�nnen, 156 werden die Kindprozesse und Threads unter einem weniger privilegierten 157 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 158 Privilegien der Apache-Kindprozesse festzulegen. Die Kindprozesse 159 m�ssen in der Lage sein, alle Inhalte zu lesen, die sie ausliefern 160 sollen, sollten dar�ber hinaus jedoch so wenig wie m�glich Rechte 161 besitzen. Zus�tzlich, solange nicht <code class="program"><a href="/programs/suexec.html">suexec</a></code> verwendet wird, legen diese 162 Direktiven auch die Privilegien fest, die von CGI-Skripts 163 geerbt werden.</p> 164 165 <p><code class="directive"><a href="/mod/mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></code> 166 bestimmt, wie h�ufig der Server Prozesse erneuert, indem er alte 167 beendet und neue startet.</p> 168</div> 169</div> 170<div class="bottomlang"> 171<p><span>Verf�gbare Sprachen: </span><a href="/de/mod/worker.html" title="Deutsch"> de </a> | 172<a href="/en/mod/worker.html" hreflang="en" rel="alternate" title="English"> en </a> | 173<a href="/ja/mod/worker.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | 174<a href="/tr/mod/worker.html" hreflang="tr" rel="alternate" title="T�rk�e"> tr </a></p> 175</div><div class="top"><a href="#page-header"><img src="/images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Kommentare</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> 176<script type="text/javascript"><!--//--><![CDATA[//><!-- 177var comments_shortname = 'httpd'; 178var comments_identifier = 'http://httpd.apache.org/docs/2.2/mod/worker.html'; 179(function(w, d) { 180 if (w.location.hostname.toLowerCase() == "httpd.apache.org") { 181 d.write('<div id="comments_thread"><\/div>'); 182 var s = d.createElement('script'); 183 s.type = 'text/javascript'; 184 s.async = true; 185 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; 186 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); 187 } 188 else { 189 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); 190 } 191})(window, document); 192//--><!]]></script></div><div id="footer"> 193<p class="apache">Copyright 2013 The Apache Software Foundation.<br />Lizenziert unter der <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> 194<p class="menu"><a href="/mod/">Module</a> | <a href="/mod/directives.html">Direktiven</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">Glossar</a> | <a href="/sitemap.html">Seitenindex</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- 195if (typeof(prettyPrint) !== 'undefined') { 196 prettyPrint(); 197} 198//--><!]]></script> 199</body></html>