mirror of
https://github.com/apache/httpd.git
synced 2025-05-30 01:07:09 +03:00
(back-ported to 2.2.x) and update transformation git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@483755 13f79535-47bb-0310-9956-ffa450edef68
1011 lines
46 KiB
XML
1011 lines
46 KiB
XML
<?xml version="1.0"?>
|
|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
|
|
<!-- English Revision: 151408:478131 (outdated) -->
|
|
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<modulesynopsis metafile="mpm_common.xml.meta">
|
|
|
|
<name>mpm_common</name>
|
|
<description>Eine Sammlung von Direktiven, die in mehr als einem
|
|
Multi-Processing-Modul (MPM) implementiert sind.</description>
|
|
<status>MPM</status>
|
|
|
|
<directivesynopsis>
|
|
<name>AcceptMutex</name>
|
|
<description>Vom Apache verwendete Methode zur Serialisierung mehrerer
|
|
Kindprozesse, die Anfragen an Netzwerk-Sockets entgegennehmen.</description>
|
|
<syntax>AcceptMutex Default|<var>Methode</var></syntax>
|
|
<default>AcceptMutex Default</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>leader</module><module>perchild</module>
|
|
<module>prefork</module><module>threadpool</module><module>worker</module>
|
|
</modulelist>
|
|
|
|
<usage>
|
|
<p>Die Direktive <directive>AcceptMutex</directive> bestimmt die
|
|
Methode, die der Apache zur Serialisierung mehrerer Kindprozesse
|
|
verwendet, welche Anfragen an Netzwerk-Sockets entgegennehmen. Vor
|
|
Apache 2.0 war diese Methode nur zur Kompilierungszeit einstellbar.
|
|
Die optimale Methode ist sehr stark von der Architektur und
|
|
Plattform abhängig. Lesen Sie bitte <a
|
|
href="../misc/perf-tuning.html">Perfomance-Hinweise</a> für
|
|
weitere Details.</p>
|
|
|
|
<p>Wenn die Direktive auf <code>Default</code> eingestellt ist, dann
|
|
wird die zur Kompilierungszeit gewählte Voreinstellung verwendet.
|
|
Weitere mögliche Methoden sind unten angegeben. Beachten Sie, dass
|
|
nicht alle Methoden auf allen Plattformen verfügbar sind. Wird
|
|
eine Methode angegeben, die nicht verfügbar ist, dann wird
|
|
eine Nachricht in das Fehlerprotokoll geschrieben, welche die
|
|
verfügbaren Methoden auflistet.</p>
|
|
|
|
<dl>
|
|
<dt><code>flock</code></dt>
|
|
<dd>verwendet die Systemfunktion <code>flock(2)</code>, um die
|
|
durch die <directive module="mpm_common"
|
|
>LockFile</directive>-Direktive definierte Datei zu sperren.</dd>
|
|
|
|
<dt><code>fcntl</code></dt>
|
|
<dd>verwendet die Systemfunktion <code>fcntl(2)</code>, um die
|
|
durch die <directive module="mpm_common"
|
|
>LockFile</directive>-Direktive definierte Datei zu sperren.</dd>
|
|
|
|
<dt><code>posixsem</code></dt>
|
|
<dd>verwendet POSIX-kompatible Semaphore, um den Mutex zu
|
|
implementieren.</dd>
|
|
|
|
<dt><code>pthread</code></dt>
|
|
<dd>verwendet gemäß der POSIX-Thread-Spezifikation
|
|
implementierte POSIX-Mutexe.</dd>
|
|
|
|
<dt><code>sysvsem</code></dt>
|
|
<dd>verwendet Semaphoren des SysV-Typs, um den Mutex zu
|
|
implementieren.</dd>
|
|
</dl>
|
|
|
|
<p>Um die bei der Kompilierung gewählte Voreinstellung für
|
|
Ihr System herauszufinden, können Sie Ihr <directive module="core"
|
|
>LogLevel</directive> auf <code>debug</code> setzen. Dann wird der
|
|
voreingestellte <directive>AcceptMutex</directive> ins <directive
|
|
module="core">ErrorLog</directive> geschrieben.</p>
|
|
|
|
<note type="warning"><title>Warnung</title>
|
|
<p>Auf den meisten Systemen stoppt der Server mit der Beantwortung von
|
|
Anfragen, wenn die Option <code>pthread</code> ausgewählt wurde und
|
|
ein Kindprozess unkontrolliert endet während er den
|
|
<code>AcceptCntl</code>-Mutex hält. In diesem Fall muss der Server
|
|
manuell neu gestartet werden, um wieder weiter zu arbeiten.</p>
|
|
<p>Eine Ausnahme stellt Solaris dar, da es einen Mechanismus anbietet, den
|
|
der Apache verwendet und der üblicherweise die Freigabe des Mutex
|
|
erlaubt, nachdem ein Kindprozess, der gerade einen Mutex hält,
|
|
abgestürzt ist.</p>
|
|
<p>Wenn Ihr System die Funktion
|
|
<code>pthread_mutexattr_setrobust_np()</code> bereitstellt, können
|
|
Sie wahrscheinlich die Option <code>pthread</code> problemlos
|
|
verwenden.</p>
|
|
</note>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>CoreDumpDirectory</name>
|
|
<description>Verzeichnis, in das der Apache zu wechseln versucht, bevor er
|
|
einen Hauptspeicherauszug erstellt</description>
|
|
<syntax>CoreDumpDirectory <var>Verzeichnis</var></syntax>
|
|
<default>Für die Voreinstellung siehe Beschreibung</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>beos</module><module>leader</module>
|
|
<module>mpm_winnt</module><module>perchild</module><module>prefork</module>
|
|
<module>threadpool</module><module>worker</module></modulelist>
|
|
|
|
<usage>
|
|
<p>Dies beeinflusst das Verzeichnis, in welches der Apache zu wechseln
|
|
versucht, bevor er einen Hauptspeicherauszug <transnote>einen
|
|
so genannten Core-Dump</transnote> erstellt. Die Voreinstellung ist das
|
|
<directive module="core">ServerRoot</directive>-Verzeichnis. Da dieses
|
|
jedoch nicht für den Benutzer beschreibbar sein soll, unter dem
|
|
der Server läuft, werden normalerweise keine
|
|
Hauptspeicherauszüge geschrieben. Wenn Sie zum Debuggen
|
|
einen Hauptspeicherauszug haben möchten, können Sie
|
|
ihn mit dieser Direktive an einem anderen Ort ablegen lassen.</p>
|
|
|
|
<note><title>Hauptspeicherauszüge unter Linux</title>
|
|
<p>Wenn Apache als <code>root</code> startet und zu einem anderen Benutzer
|
|
wechselt, <em>deaktiviert</em> der Linux-Kernel Hauptspeicherauszüge
|
|
auch dann, wenn der Prozess in dem Verzeichnis schreiben darf. Ab Linux
|
|
2.4 reaktiviert Apache (ab 2.0.46) Hauptspeicherauszüge wieder,
|
|
jedoch nur dann, wenn Sie explizit
|
|
<directive>CoreDumpDirectory</directive> konfigurieren.</p>
|
|
</note>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>EnableExceptionHook</name>
|
|
<description>Aktiviert einen Hook, der nach einem Absturz noch
|
|
Ausnahmefehler behandeln lassen kann</description>
|
|
<syntax>EnableExceptionHook On|Off</syntax>
|
|
<default>EnableExceptionHook Off</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>leader</module><module>perchild</module>
|
|
<module>prefork</module><module>threadpool</module>
|
|
<module>worker</module></modulelist>
|
|
<compatibility>Verfügbar seit Version 2.0.49</compatibility>
|
|
|
|
<usage>
|
|
<p>Diese Direktive ist aus Sicherheitsgründen nur verfügbar,
|
|
wenn der Server mit der Option <code>--enable-exception-hook</code>
|
|
konfiguriert wurde. Sie aktiviert einen Hook, der es externen Modulen
|
|
erlaubt, sich dort einzuhängen und nach dem Absturz eines
|
|
Kindprozesses noch Aktionen durchzuführen.</p>
|
|
|
|
<p>Es existieren bereits zwei Module, <code>mod_whatkilledus</code> und
|
|
<code>mod_backtrace</code>, welche diesen Hook verwenden. Weitere
|
|
Informationen hierzu finden Sie auf Jeff Trawicks <a
|
|
href="http://www.apache.org/~trawick/exception_hook.html"
|
|
>EnableExceptionHook-Seite</a>.</p>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>Group</name>
|
|
<description>Benutzergruppe, unter welcher der Server Anfragen
|
|
beantwortet</description>
|
|
<syntax>Group <var>Unix-Gruppe</var></syntax>
|
|
<default>Group #-1</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>beos</module><module>leader</module>
|
|
<module>mpmt_os2</module><module>perchild</module><module>prefork</module>
|
|
<module>threadpool</module><module>worker</module></modulelist>
|
|
<compatibility>Seit Apache 2.0 nur in der globalen Server-Konfiguration
|
|
gültig</compatibility>
|
|
|
|
<usage>
|
|
<p>Die Direktive <directive>Group</directive> bestimmt die
|
|
Benutzergruppe, unter welcher der Server Anfragen beantwortet.
|
|
Um diese Direktive zu verwenden, muss der Server als <code>root</code> gestartet
|
|
werden. Wenn Sie den Server unter einem nicht-root-Benutzer starten,
|
|
wird er nicht zur angegebenen Gruppe wechseln können und statt
|
|
dessen weiter mit der Gruppe des ursprünglichen Benutzers
|
|
laufen. <var>Unix-Gruppe</var> kann sein:</p>
|
|
|
|
<dl>
|
|
<dt>Ein Gruppenname</dt>
|
|
<dd>Verweist auf die durch den Namen angegebene Gruppe.</dd>
|
|
|
|
<dt><code>#</code> gefolgt von einer Gruppennummer.</dt>
|
|
<dd>Verweist auf die durch ihre Nummer angegebene Gruppe.</dd>
|
|
</dl>
|
|
|
|
<example><title>Beispiel</title>
|
|
Group www-group
|
|
</example>
|
|
|
|
<p>Es wird empfohlen, dass Sie eine neue Gruppe speziell zum Betrieb
|
|
des Servers erstellen. Einige Administratoren verwenden den Benutzer
|
|
<code>nobody</code>. Dies ist jedoch nicht immer möglich
|
|
oder gewünscht.</p>
|
|
|
|
<note type="warning"><title>Sicherheit</title>
|
|
<p>Setzen Sie <directive>Group</directive> (oder <directive
|
|
module="mpm_common">User</directive>) nicht auf <code>root</code>,
|
|
solange Sie nicht ganz genau wissen, was Sie tun und welche Gefahren
|
|
Sie eingehen.</p>
|
|
</note>
|
|
|
|
<p>Wichtiger Hinweis: Die Verwendung der Direktive innerhalb von
|
|
<directive module="core" type="section">VirtualHost</directive>
|
|
wird nicht länger unterstützt. Benutzen Sie <directive
|
|
module="mod_suexec">SuexecUserGroup</directive> um Ihren Server
|
|
für <program>suexec</program> einzurichten.</p>
|
|
|
|
<note><title>Anmerkung</title>
|
|
<p>Obwohl die Direktive <directive>Group</directive> in den MPMs
|
|
<module>beos</module> und <module>mpmt_os2</module> existiert, ist
|
|
sie dort tatsächlich eine Leeranweisung und exisitert nur
|
|
aus Kompatibilitätsgründen.</p>
|
|
</note>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>PidFile</name>
|
|
<description>Datei, in welcher der Server die Prozess-ID des Daemons
|
|
ablegt</description>
|
|
<syntax>PidFile <var>Dateiname</var></syntax>
|
|
<default>PidFile logs/httpd.pid</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>beos</module><module>leader</module>
|
|
<module>mpm_winnt</module><module>mpmt_os2</module>
|
|
<module>perchild</module><module>prefork</module>
|
|
<module>threadpool</module><module>worker</module></modulelist>
|
|
|
|
<usage>
|
|
<p>Die Direktive <directive>PidFile</directive> bestimmt die Datei,
|
|
in welcher der Server die Prozess-ID des Daemons ablegt. Wenn der
|
|
Dateiname nicht absolut angegeben wird, wird er relativ zu
|
|
<directive module="core">ServerRoot</directive> interpretiert.</p>
|
|
|
|
<example><title>Beispiel</title>
|
|
PidFile /var/run/apache.pid
|
|
</example>
|
|
|
|
<p>Es ist oft hilfreich, dem Server ein Signal senden zu können,
|
|
damit er seine <directive module="core">ErrorLog</directive>s und
|
|
<directive module="mod_log_config">TransferLog</directive>s
|
|
schließt und dann neu öffnet und seine
|
|
Konfigurationsdateien neu einliest. Dies kann durch Senden eines
|
|
SIGHUP-Signals (kill -1) an die Prozess-ID geschehen, die im
|
|
<directive>PidFile</directive> eingetragen ist.</p>
|
|
|
|
<p>Die <directive>PidFile</directive>-Datei unterliegt den
|
|
gleichen Warnungen über die Ablage von Protokolldateien
|
|
und <a href="../misc/security_tips.html#serverroot">Sicherheit</a>.</p>
|
|
|
|
<note><title>Anmerkung</title>
|
|
<p>Ab Apache 2 wird empfohlen, nur das Skript <program>
|
|
apachectl</program> zum (Neu-)Starten und Stoppen des Servers zu
|
|
verwenden.</p>
|
|
</note>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>Listen</name>
|
|
<description>IP-Adressen und Ports, an denen der Server lauscht</description>
|
|
<syntax>Listen [<var>IP-Addresse</var>:]<var>Port</var></syntax>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>beos</module><module>leader</module>
|
|
<module>mpm_netware</module><module>mpm_winnt</module>
|
|
<module>mpmt_os2</module><module>perchild</module>
|
|
<module>prefork</module><module>threadpool</module><module>worker</module>
|
|
</modulelist>
|
|
<compatibility>Seit Apache 2.0 vorgeschrieben</compatibility>
|
|
|
|
<usage>
|
|
<p>Die Direktive <directive>Listen</directive> weist den Apache an,
|
|
nur an den angegebenen IP-Adressen oder Ports zu lauschen.
|
|
Standardmäßig antwortet er auf alle Anfragen an allen
|
|
IP-Interfaces. <directive>Listen</directive> ist nun eine notwendige
|
|
Anweisung. Wenn sie nicht in der Konfigurationsdatei enthalten ist,
|
|
wird der Server-Start fehlschlagen. Dies ist eine Änderung
|
|
gegenüber früheren Versionen des Apache.</p>
|
|
|
|
<p>Die Direktive <directive>Listen</directive> weist den Server an,
|
|
ankommende Anfragen am angegebenen Port oder der
|
|
Kombination aus Adresse und Port entgegenzunehmen. Wenn nur eine Portnummer
|
|
angegeben ist, dann lauscht der Server am angegebenen Port an allen
|
|
Interfaces. Wenn sowohl eine IP-Adresse als auch ein Port angegeben
|
|
sind, dann lauscht der Server am angegeben Port und Interface.</p>
|
|
|
|
<p>Es können mehrere <directive>Listen</directive>-Anweisungen
|
|
verwendet werden, um eine Reihe von Adressen und Port anzugeben, an
|
|
denen gelauscht werden soll. Der Server antwortet auf Anfragen von
|
|
jedem der aufgeführten Adressen und Ports.</p>
|
|
|
|
<p>Um beispielsweise den Server Verbindungen an den beiden Ports 80 und
|
|
8000 annehmen zu lassen, verwenden Sie:</p>
|
|
|
|
<example>
|
|
Listen 80<br />
|
|
Listen 8000
|
|
</example>
|
|
|
|
<p>Um den Server Verbindungen an zwei angegebenen Interfaces und Ports
|
|
annehmen zu lassen, verwenden Sie:</p>
|
|
|
|
<example>
|
|
Listen 192.170.2.1:80<br />
|
|
Listen 192.170.2.5:8000
|
|
</example>
|
|
|
|
<p>IPv6-Adressen müssen wie in dem folgenden Beispiel in eckige
|
|
Klammern eingeschlossen werden:</p>
|
|
|
|
<example>
|
|
Listen [2001:db8::a00:20ff:fea7:ccea]:80
|
|
</example>
|
|
|
|
<note><title>Fehlermöglichkeit</title>
|
|
Mehrere <directive>Listen</directive>-Direktiven für gleiche
|
|
IP-Adresse und Port führen zur Fehlermeldung
|
|
<code>Address already in use</code> <transnote>Adresse schon in
|
|
Benutzung</transnote>.
|
|
</note>
|
|
</usage>
|
|
<seealso><a href="../dns-caveats.html">DNS-Probleme</a></seealso>
|
|
<seealso><a href="../bind.html">Bestimmen, welche Adressen und Ports der
|
|
Apache verwendet</a></seealso>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>ListenBackLog</name>
|
|
<description>Maximale Länge der Warteschlange schwebender
|
|
Verbindungen</description>
|
|
<syntax>ListenBacklog <var>backlog</var></syntax>
|
|
<default>ListenBacklog 511</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>beos</module><module>leader</module>
|
|
<module>mpm_netware</module><module>mpm_winnt</module>
|
|
<module>mpmt_os2</module><module>perchild</module><module>prefork</module>
|
|
<module>threadpool</module><module>worker</module></modulelist>
|
|
|
|
<usage>
|
|
<p>Die maximale Länge der Warteschlange schwebender Verbindungen.
|
|
Üblicherweise ist keine Feineinstellung notwendig oder sinnvoll,
|
|
auf einigen System kann es jedoch gewünscht sein, diesen Wert bei
|
|
TCP-SYN-Angriffen zu erhöhen. Beachten Sie auch die Beschreibung des
|
|
backlog-Parameters der Systemfunktion <code>listen(2)</code>.</p>
|
|
|
|
<p>Der Wert wird vom Betriebssystem oft auf eine niedrigere
|
|
Einstellung begrenzt. Dies variiert von Betriebssystem zu Betriebssystem.
|
|
Beachten Sie auch, dass viele Betriebssyteme nicht genau beachten,
|
|
was für backlog angegeben ist, jedoch einen Wert basierend auf der
|
|
Angabe (normalerweiseweise jedoch größer als diese) verwenden.</p>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>LockFile</name>
|
|
<description>Ablageort der Lock-Datei für die Serialisierung von
|
|
entgegengenommenen Anfragen</description>
|
|
<syntax>LockFile <var>Dateiname</var></syntax>
|
|
<default>LockFile logs/accept.lock</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>leader</module><module>perchild</module>
|
|
<module>prefork</module><module>threadpool</module><module>worker</module>
|
|
</modulelist>
|
|
|
|
<usage>
|
|
<p>Die Direktive <directive>LockFile</directive> legt den Pfad zur
|
|
Lock-Datei fest, die verwendet wird, wenn der Apache mit einer der
|
|
<directive module="mpm_common">AcceptMutex</directive>-Einstellungen
|
|
<code>fcntl</code> oder <code>flock</code> verwendet wird. Die Anweisung
|
|
sollte normalerweise bei der Voreinstellung belassen werden.
|
|
Der Hauptgrund, sie zu ändern, ist, wenn das
|
|
<code>logs</code>-Verzeichnis auf einem per NFS-eingebundenen Laufwerk
|
|
liegt, da <strong>die Lock-Datei auf einer lokalen Platte abgelegt sein
|
|
muss</strong>. Die PID <transnote>Prozess-ID</transnote> des
|
|
Hauptserverprozesses wird automatisch an den Dateinamen angehängt.</p>
|
|
|
|
<note type="warning"><title>Sicherheit</title>
|
|
<p>Es ist am besten, die Ablage in einem allgemein <transnote>für
|
|
jedermann</transnote> beschreibbaren
|
|
Verzeichnis wie <code>/var/tmp</code> <em>zu vermeiden</em>, da
|
|
ein Denial-of-Servide-Angriff gestartet werden könnte und der
|
|
Server am Start gehindert werden könnte, indem eine Lock-Datei
|
|
mit dem gleichen Namen erstellt wird, wie der Server sie zu erstellen
|
|
versuchen würde.</p>
|
|
</note>
|
|
</usage>
|
|
<seealso><directive module="mpm_common">AcceptMutex</directive></seealso>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>MaxClients</name>
|
|
<description>Maximale Anzahl der Kindprozesse, die zur Bedienung von Anfragen
|
|
gestartet wird</description>
|
|
<syntax>MaxClients <var>Anzahl</var></syntax>
|
|
<default>Für Details siehe Beschreibung</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>beos</module><module>leader</module>
|
|
<module>prefork</module><module>threadpool</module><module>worker</module>
|
|
</modulelist>
|
|
|
|
<usage>
|
|
<p>Die Direktive <directive>MaxClients</directive> setzt die Grenze
|
|
für die Anzahl gleichzeitig bedienter Anfragen. Jeder
|
|
Verbindungsversuch oberhalb der <directive
|
|
>MaxClients</directive>-Begrenzung wird üblicherweise in eine
|
|
Warteschlange gestellt, bis zu einer Anzahl basierend auf der
|
|
<directive module="mpm_common">ListenBacklog</directive>-Anweisung.
|
|
Sobald ein Kindprozess am Ende einer anderen Anfrage freigegeben wird,
|
|
wird die Verbindung bedient.</p>
|
|
|
|
<p>Für Server ohne Thread-Unterstützung (<em>z.B.</em>
|
|
<module>prefork</module>) wird <directive>MaxClients</directive> als
|
|
maximale Anzahl der Kindprozesse verstanden, die zur Bedienung von
|
|
Anfragen gestartet werden. Die Voreinstellung ist <code>256</code>. Um
|
|
diesen Wert zu erhöhen, muss auch <directive
|
|
module="mpm_common">ServerLimit</directive> angehoben werden.</p>
|
|
|
|
<p>Bei Servern mit Thread-Unterstützung und bei Hybrid-Servern
|
|
(<em>z.B.</em> <module>beos</module> oder <module>worker</module>)
|
|
begrenzt <directive>MaxClients</directive> die Gesamtzahl der Threads,
|
|
die für die Bedienung von Anfragen verfügbar sind.
|
|
Die Voreinstellung für <module>beos</module> ist <code>50</code>.
|
|
Bei Hybrid-MPMs ist die Voreinstellung <code>16</code> (<directive
|
|
module="mpm_common">ServerLimit</directive>) multipliziert mit
|
|
dem Wert <code>25</code> (<directive module="mpm_common"
|
|
>ThreadsPerChild</directive>). Um <directive>MaxClients</directive>
|
|
auf einen Wert zu erhöhen, der mehr als 16 Prozesse erfordert,
|
|
müssen Sie daher auch <directive module="mpm_common"
|
|
>ServerLimit</directive> anheben.</p>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>MaxMemFree</name>
|
|
<description>Maximale Menge des Arbeitsspeichers, den die
|
|
Haupt-Zuteilungsroutine verwalten darf, ohne <code>free()</code>
|
|
aufzurufen</description>
|
|
<syntax>MaxMemFree <var>KBytes</var></syntax>
|
|
<default>MaxMemFree 0</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>beos</module><module>leader</module>
|
|
<module>mpm_netware</module><module>prefork</module>
|
|
<module>threadpool</module><module>worker</module><module>mpm_winnt</module></modulelist>
|
|
|
|
<usage>
|
|
<p>Die Direktive <directive>MaxMemFree</directive> gibt die maximale
|
|
Menge freier Kilobytes an, welche die Haupt-Zuteilungsroutine verwalten
|
|
darf, ohne <code>free()</code> aufzurufen. Wenn keine Angabe gemacht wird,
|
|
oder Null angegeben ist, wird dieser Wert nicht eingeschränkt.</p>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>MaxRequestsPerChild</name>
|
|
<description>Obergrenze für die Anzahl von Anfragen, die ein einzelner
|
|
Kindprozess während seines Lebens bearbeitet</description>
|
|
<syntax>MaxRequestsPerChild <var>number</var></syntax>
|
|
<default>MaxRequestsPerChild 10000</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>leader</module><module>mpm_netware</module>
|
|
<module>mpm_winnt</module><module>mpmt_os2</module>
|
|
<module>perchild</module><module>prefork</module>
|
|
<module>threadpool</module><module>worker</module></modulelist>
|
|
|
|
<usage>
|
|
<p>Die Direktive <directive>MaxRequestsPerChild</directive> legt die
|
|
Grenze für die Anzahl von Anfragen fest, die ein einzelner
|
|
Kinprozess während seines Lebens bearbeitet. Nach
|
|
<directive>MaxRequestsPerChild</directive> Anfragen stirbt der
|
|
Kindprozess. Wenn <directive>MaxRequestsPerChild</directive>
|
|
<code>0</code> ist, endet der Prozess niemals.</p>
|
|
|
|
<note><title>Abweichende Voreinstellungen</title>
|
|
<p>Die Voreinstellung für <module>mpm_netware</module> und
|
|
<module>mpm_winnt</module> ist <code>0</code>.</p>
|
|
</note>
|
|
|
|
<p>Die Begrenzung von <directive>MaxRequestsPerChild</directive> auf einen
|
|
Wert ungleich Null hat zwei vorteilhafte Auswirkungen:</p>
|
|
|
|
<ul>
|
|
<li>sie begrenzt die Menge an Arbeitsspeicher, die ein Prozess
|
|
durch (versehentliche) Speicherlecks verbrauchen kann.</li>
|
|
|
|
<li>das Festlegen einer endlichen Lebensdauer von Prozessen hilft, die
|
|
Anzahl von Prozessen zu reduzieren, wenn die Serverlast
|
|
zurückgeht.</li>
|
|
</ul>
|
|
|
|
<note><title>Anmerkung</title>
|
|
<p>Bei <directive module="core">KeepAlive</directive>-Anfragen
|
|
wird nur die erste Anfrage für diese begrenzung gezählt.
|
|
Eigentlich wird nur die Begrenzung für die Anzahl der
|
|
<em>Verbindungen</em> pro Kindprozess geändert.</p>
|
|
</note>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>MaxSpareThreads</name>
|
|
<description>Maximale Anzahl unbeschäftigter Threads</description>
|
|
<syntax>MaxSpareThreads <var>Anzahl</var></syntax>
|
|
<default>Für Details siehe Beschreibung</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>beos</module><module>leader</module>
|
|
<module>mpm_netware</module><module>mpmt_os2</module>
|
|
<module>perchild</module><module>threadpool</module><module>worker</module>
|
|
</modulelist>
|
|
|
|
<usage>
|
|
<p>Maximale Anzahl unbeschäftigter Threads. Die verschiedenen MPMs
|
|
behandeln diese Anweisung unterschiedlich.</p>
|
|
|
|
<p>Die Voreinstellung für <module>perchild</module> ist
|
|
<code>MaxSpareThreads 10</code>. Das MPM überwacht die Anzahl der
|
|
unbeschäftigten Threads auf der Basis einzelner Kindprozesse. Wenn
|
|
zu viele unbeschäftigte Threads in einem Kindprozess existieren,
|
|
beendet der Server Threads innerhalb dieses Kindprozesses.</p>
|
|
|
|
<p>Die Voreinstellung für <module>worker</module>,
|
|
<module>leader</module> und <module>threadpool</module> ist
|
|
<code>MaxSpareThreads 250</code>. Diese MPMs behandeln Threads
|
|
auf einer serverweiten Basis. Wenn zu viele unbeschäftigte Threads
|
|
im Server existieren, dann werden solange Kindprozesse beendet, bis
|
|
die Anzahl der unbeschäftigten Threads kleiner als der
|
|
angegebene Wert ist.</p>
|
|
|
|
<p>Die Voreinstellung für <module>mpm_netware</module> ist
|
|
<code>MaxSpareThreads 100</code>. Da dieses MPM nur einen einzigen
|
|
Prozess ausführt, ist die Zählung überschüssiger
|
|
Threads ebenfalls serverweit.</p>
|
|
|
|
<p><module>beos</module> and <module>mpmt_os2</module> arbeiten
|
|
ähnlich wie <module>mpm_netware</module>. Die Voreinstellung
|
|
für <module>beos</module> ist <code>MaxSpareThreads 50</code>.
|
|
Die Voreinstellung für <module>mpmt_os2</module> ist
|
|
<code>10</code>.</p>
|
|
|
|
<note><title>Restriktionen</title>
|
|
<p>Der Wertebereich von <directive>MaxSpareThreads</directive>
|
|
ist eingeschränkt. Apache korrigiert den angegebenen Wert
|
|
automatisch gemäß den folgenden Regeln:</p>
|
|
<ul>
|
|
<li><module>perchild</module> verlangt, dass <directive
|
|
>MaxSpareThreads</directive> kleiner oder gleich <directive
|
|
module="mpm_common">ThreadLimit</directive> ist.</li>
|
|
|
|
<li><module>mpm_netware</module> verlangt einen Wert größer
|
|
als <directive module="mpm_common">MinSpareThreads</directive>.</li>
|
|
|
|
<li>Bei <module>leader</module>, <module>threadpool</module> und
|
|
<module>worker</module> muss der Wert größer oder gleich
|
|
der Summe aus <directive
|
|
module="mpm_common">MinSpareThreads</directive> und
|
|
<directive module="mpm_common">ThreadsPerChild</directive> sein.</li>
|
|
</ul>
|
|
</note>
|
|
</usage>
|
|
<seealso><directive module="mpm_common">MinSpareThreads</directive></seealso>
|
|
<seealso><directive module="mpm_common">StartServers</directive></seealso>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>MinSpareThreads</name>
|
|
<description>Minimale Anzahl unbeschäftigter Threads, die zur
|
|
Bedienung von Anfragespitzen zur Verfügung stehen</description>
|
|
<syntax>MinSpareThreads <var>Anzahl</var></syntax>
|
|
<default>Für Details siehe Beschreibung</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>beos</module><module>leader</module>
|
|
<module>mpm_netware</module><module>mpmt_os2</module>
|
|
<module>perchild</module><module>threadpool</module><module>worker</module>
|
|
</modulelist>
|
|
|
|
<usage>
|
|
<p>Minimale Anzahl unbeschäftigter Threads, um Anfragespitzen
|
|
zu bedienen. Die verschiedenen MPMs behandeln die Anweisung
|
|
unterschiedlich.</p>
|
|
|
|
<p><module>perchild</module> verwendet die Voreinstellung
|
|
<code>MinSpareThreads 5</code> und überwacht die Anzahl der
|
|
unbeschäftigten Threads auf der Basis einzelner Kindprozesse. Wenn
|
|
in einem Kindprozess nicht genügend unbeschäftigte
|
|
Threads vorhanden sind, erstellt der Server neue Threads innerhalb
|
|
dieses Kindprozesses. Wenn Sie also <directive module="perchild"
|
|
>NumServers</directive> auf <code>10</code> und <directive
|
|
>MinSpareThreads</directive> auf einen Wert von <code>5</code> setzen,
|
|
haben Sie mindestens 50 unbeschäftigte Threads auf Ihrem
|
|
System.</p>
|
|
|
|
<p><module>worker</module>, <module>leader</module> und
|
|
<module>threadpool</module> verwenden eine Voreinstellung von
|
|
<code>MinSpareThreads 75</code> und behandeln unbeschäftigte
|
|
Threads auf serverweiter Basis. Wenn nicht genügend
|
|
unbeschäftigte Threads im Server vorhanden sind, dann
|
|
werden solange Kindprozesse erzeugt, bis die Anzahl unbeschäftigter
|
|
Threads größer als der angegebene Wert ist.</p>
|
|
|
|
<p><module>mpm_netware</module> verwendet die Voreinstellung
|
|
<code>MinSpareThreads 10</code> und verfolgt dies serverweit, da
|
|
es ein Einzelprozess-MPM ist.</p>
|
|
|
|
<p><module>beos</module> und <module>mpmt_os2</module> arbeiten
|
|
ähnlich wie <module>mpm_netware</module>. Die Voreinstellung
|
|
für <module>beos</module> ist <code>MinSpareThreads 1</code>.
|
|
Die Voreinstellung für <module>mpmt_os2</module> ist
|
|
<code>5</code>.</p>
|
|
|
|
</usage>
|
|
<seealso><directive module="mpm_common">MaxSpareThreads</directive></seealso>
|
|
<seealso><directive module="mpm_common">StartServers</directive></seealso>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>ScoreBoardFile</name>
|
|
<description>Ablageort der Datei, die zur Speicherung von Daten zur
|
|
Koordinierung der Kindprozesse verwendet wird</description>
|
|
<syntax>ScoreBoardFile <var>Dateipfad</var></syntax>
|
|
<default>ScoreBoardFile logs/apache_status</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>beos</module><module>leader</module>
|
|
<module>mpm_winnt</module><module>perchild</module><module>prefork</module>
|
|
<module>threadpool</module><module>worker</module></modulelist>
|
|
|
|
<usage>
|
|
<p>Apache verwendet ein Scoreboard zur Kommunikation zwischen
|
|
seinen Eltern- und Kindprozessen. Einige Architekturen erfordern
|
|
eine Datei zur Unterstützung der Kommunikation. Wenn die Datei
|
|
undefiniert bleibt, versucht der Apache zuerst, das Scoreboard im
|
|
Arbeitsspeicher zu erstellen (Verwendung von anonymem Shared-Memory),
|
|
und versucht bei einem Fehlschlag anschließend die Datei auf
|
|
der Festplatte zu erstellen (Verwendung von Datei-basiertem
|
|
Shared-Memory). Die Angabe dieser Direktive veranlaßt den
|
|
Apache stets, die Datei auf der Festplatte zu erstellen.</p>
|
|
|
|
<example><title>Beispiel</title>
|
|
ScoreBoardFile /var/run/apache_status
|
|
</example>
|
|
|
|
<p>Datei-basiertes Shared-Memory ist für Applikationen von
|
|
Drittanbietern hilfreich, die direkten Zugriff auf das Scoreboard
|
|
benötigen.</p>
|
|
|
|
<p>Wenn Sie eine <directive>ScoreBoardFile</directive>-Anweisung
|
|
verwenden, erreichen Sie eventuell eine höhere Geschwindigkeit, wenn
|
|
Sie die Datei auf einer RAM-Disk ablegen. Achten Sie darauf, die
|
|
gleichen Warnungen wie über die Ablage von Protokolldateien und
|
|
<a href="../misc/security_tips.html">Sicherheit</a> zu beherzigen.</p>
|
|
</usage>
|
|
<seealso><a href="../stopping.html">Apache beenden und neu
|
|
starten</a></seealso>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>SendBufferSize</name>
|
|
<description>Größe des TCP-Puffers</description>
|
|
<syntax>SendBufferSize <var>Bytes</var></syntax>
|
|
<default>SendBufferSize 0</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>beos</module><module>leader</module>
|
|
<module>mpm_netware</module><module>mpm_winnt</module>
|
|
<module>mpmt_os2</module><module>perchild</module><module>prefork</module>
|
|
<module>threadpool</module><module>worker</module></modulelist>
|
|
|
|
<usage>
|
|
<p>Der Server setzt die Größe des TCP-Puffers auf die
|
|
angegebene Anzahl Bytes. Dies ist sehr hilfreich, um Voreinstellungen
|
|
alter Standardbetriebssysteme für Hochgeschwindigkeitsverbindungen
|
|
mit hoher Latenzzeit anzuheben (<em>d.h.</em> 100ms oder so, wie bei
|
|
Interkontinentalverbindungen).</p>
|
|
|
|
<p>Wird der Wert auf <code>0</code> gesetzt, dann verwendet der Server
|
|
die Voreinstellung des Betriebssystems.</p>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>ServerLimit</name>
|
|
<description>Obergrenze für die konfigurierbare Anzahl von
|
|
Prozessen</description>
|
|
<syntax>ServerLimit <var>Anzahl</var></syntax>
|
|
<default>Für Details siehe Beschreibung</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>leader</module><module>perchild</module>
|
|
<module>prefork</module><module>threadpool</module><module>worker</module>
|
|
</modulelist>
|
|
|
|
<usage>
|
|
<p>Bei dem MPM <module>prefork</module> bestimmt die Direktive
|
|
den während der Lebensdauer des Apache-Prozesses maximal
|
|
einstellbaren Wert für <directive
|
|
module="mpm_common">MaxClients</directive>. Beim MPM
|
|
<module>worker</module> bestimmt die Direktive in Verbindung mit
|
|
<directive module="mpm_common">ThreadLimit</directive> den Maximalwert
|
|
für <directive module="mpm_common">MaxClients</directive>
|
|
für die Lebensdauer des Apache-Prozesses. Jeder Versuch, diese
|
|
Anweisung während eines Neustarts zu ändern, wird ignoriert.
|
|
<directive module="mpm_common">MaxClients</directive> kann jedoch
|
|
während eines Neustarts geändert werden.</p>
|
|
|
|
<p>Lassen Sie besondere Vorsicht bei der Verwendung dieser Direktive
|
|
walten. Wenn <directive>ServerLimit</directive> auf einen Wert deutlich
|
|
höher als notwendig gesetzt wird, wird zusätzliches,
|
|
unbenutztes Shared-Memory belegt. Wenn sowohl
|
|
<directive>ServerLimit</directive> als auch <directive
|
|
module="mpm_common">MaxClients</directive> auf Werte gesetzt werden, die
|
|
größer sind, als das System sie handhaben kann, dann kann
|
|
der Apache möglicherweise nicht starten, oder das System kann
|
|
instabil werden.</p>
|
|
|
|
<p>Verwenden Sie die Direktive bei dem MPM <module>prefork</module>
|
|
nur, wenn Sie <directive module="mpm_common">MaxClients</directive>
|
|
auf mehr als 256 (Voreinstellung) setzen müssen. Setzen Sie den
|
|
Wert nicht höher als den Wert, den Sie für <directive
|
|
module="mpm_common">MaxClients</directive> angeben möchten.</p>
|
|
|
|
<p>Verwenden Sie die Direktive bei <module>worker</module>,
|
|
<module>leader</module> und <module>threadpool</module> nur, wenn Ihre
|
|
<directive module="mpm_common">MaxClients</directive>- und
|
|
<directive module="mpm_common">ThreadsPerChild</directive>-Einstellungen
|
|
mehr als 16 Serverprozesse (Voreinstellung) erfordern. Setzen Sie den
|
|
Wert dieser Direktive nicht höher, als die Anzahl der Serverprozesse,
|
|
die dafür erforderlich ist, was Sie bei <directive
|
|
module="mpm_common">MaxClients</directive> und
|
|
<directive module="mpm_common">ThreadsPerChild</directive> angeben
|
|
möchten.</p>
|
|
|
|
<p>Verwenden Sie die Direktive beim MPM <module>perchild</module> nur,
|
|
wenn Sie <directive module="perchild">NumServers</directive> auf einen
|
|
Wert größer als 8 (Voreinstellung) setzen müssen.</p>
|
|
|
|
<note><title>Anmerkung</title>
|
|
<p>Eine feste Begrenzung von <code>ServerLimit 20000</code> ist in den
|
|
Server einkompiliert (bei dem MPM <module>prefork</module> 200000).
|
|
Dies soll unangenehme Effekte durch Tippfehler verhindern.</p>
|
|
</note>
|
|
</usage>
|
|
<seealso><a href="../stopping.html">Apache beenden und neu
|
|
starten</a></seealso>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>StartServers</name>
|
|
<description>Anzahl der Kindprozesse des Servers, die beim Start erstellt
|
|
werden</description>
|
|
<syntax>StartServers <var>Anzahl</var></syntax>
|
|
<default>Für Details siehe Beschreibung</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>leader</module><module>mpmt_os2</module>
|
|
<module>prefork</module><module>threadpool</module><module>worker</module>
|
|
</modulelist>
|
|
|
|
<usage>
|
|
<p>Die Direktive <directive>StartServers</directive> bestimmt
|
|
die Anzahl der Kindprozesse des Servers, die beim Start erstellt
|
|
werden. Da die Anzahl der Prozesse abhängig von der Last
|
|
dynamisch kontrolliert wird, besteht normalerweise wenig
|
|
Grund für eine Änderung dieses Parameters.</p>
|
|
|
|
<p>Die Voreinstellung unterscheidet sich von MPM zu MPM. Bei
|
|
<module>leader</module>, <module>threadpool</module> und
|
|
<module>worker</module> ist die Voreinstellung
|
|
<code>StartServers 3</code>. Die Voreinstellung bei
|
|
<module>prefork</module> ist <code>5</code> und bei
|
|
<module>mpmt_os2</module> <code>2</code>.</p>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>StartThreads</name>
|
|
<description>Anzahl der Threads, die beim Start erstellt werden</description>
|
|
<syntax>StartThreads <var>Anzahl</var></syntax>
|
|
<default>Für Details siehe Beschreibung</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>beos</module><module>mpm_netware</module>
|
|
<module>perchild</module></modulelist>
|
|
|
|
<usage>
|
|
<p>Anzahl der Threads, die beim Start erstellt werden. Da die Anzahl
|
|
der Threads abhängig von der Last dynamisch kontrolliert wird,
|
|
besteht normalerweise wenig Grund für eine Änderung
|
|
dieses Parameters.</p>
|
|
|
|
<p>Die Voreinstellung für <module>perchild</module> ist
|
|
<code>StartThreads 5</code>. Die Direktive setzt während des
|
|
Starts die Anzahl der Threads pro Prozess.</p>
|
|
|
|
<p>Die Voreinstellung bei <module>mpm_netware</module> ist
|
|
<code>StartThreads 50</code>. Da hier lediglich ein einzelner Prozess
|
|
existiert, ist dies die Gesamtzahl der Threads, die beim Start
|
|
erstellt wird, um Anfragen zu bedienen.</p>
|
|
|
|
<p>Die Voreinstellung für <module>beos</module> ist <code>StartThreads
|
|
10</code>. Die Einstellung reflektiert ebenfalls die Gesamtzahl der Threads, die
|
|
beim Start erstellt werden, um Anfragen zu bedienen.</p>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>ThreadLimit</name>
|
|
<description>Bestimmt die Obergrenze der konfigurierbaren Anzahl von Threads
|
|
pro Kindprozess</description>
|
|
<syntax>ThreadLimit <var>Anzahl</var></syntax>
|
|
<default>Für Details siehe Beschreibung</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>leader</module><module>mpm_winnt</module>
|
|
<module>perchild</module><module>threadpool</module><module>worker</module>
|
|
</modulelist>
|
|
<compatibility>Verfügbar für <module>mpm_winnt</module> ab
|
|
Apache 2.0.41</compatibility>
|
|
|
|
<usage>
|
|
<p>Die Direktive bestimmt den während der Lebensdauer des
|
|
Apache-Prozesses maximal einstellbaren Wert für
|
|
<directive module="mpm_common">ThreadsPerChild</directive>. Jeder
|
|
Versuch, diese Direktive während eines Neustarts zu ändern,
|
|
wird ignoriert. <directive module="mpm_common">ThreadsPerChild</directive>
|
|
kann jedoch während eines Neustarts modifiziert werden bis zu dem
|
|
Wert dieser Anweisung.</p>
|
|
|
|
<p>Lassen Sie besondere Vorsicht bei der Verwendung dieser Direktive
|
|
walten. Wenn <directive>ThreadLimit</directive> auf einen Wert
|
|
deutlich höher als <directive
|
|
module="mpm_common">ThreadsPerChild</directive> gesetzt wird, wird
|
|
zusätzliches, ungenutztes Shared-Memory belegt. Wenn sowohl
|
|
<directive>ThreadLimit</directive> als auch <directive
|
|
module="mpm_common">ThreadsPerChild</directive> auf Werte gesetzt werden,
|
|
die größer sind, als das System sie handhaben kann, dann kann
|
|
der Apache möglicherweise nicht starten oder das System kann
|
|
instabil werden. Setzen Sie den Wert dieser Direktive nicht höher
|
|
als Ihre größte erwartete Einstellung für
|
|
<directive module="mpm_common">ThreadsPerChild</directive>
|
|
während der aktuellen Ausführung des Apache.</p>
|
|
|
|
<p>Die Voreinstellung für <directive>ThreadLimit</directive> ist
|
|
<code>1920</code> wenn sie zusammen mit <module>mpm_winnt</module>
|
|
verwendet wird, und <code>64</code> bei der Verwendung mit anderen
|
|
MPMs.</p>
|
|
|
|
<note><title>Anmerkung</title>
|
|
<p>Eine feste Begrenzung von <code>ThreadLimit 20000</code>
|
|
(oder <code>ThreadLimit 15000</code> bei <module>mpm_winnt</module>)
|
|
ist in den Server einkompiliert. Dies soll unangenehme Effekte durch
|
|
Tippfehler verhindern.</p>
|
|
</note>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>ThreadsPerChild</name>
|
|
<description>Anzahl der Threads, die mit jedem Kindprozess gestartet
|
|
werden</description>
|
|
<syntax>ThreadsPerChild <var>Anzahl</var></syntax>
|
|
<default>Für Details siehe Beschreibung</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>leader</module><module>mpm_winnt</module>
|
|
<module>threadpool</module><module>worker</module></modulelist>
|
|
|
|
<usage>
|
|
<p>Die Direktive legt die Anzahl der Threads fest, die mit jedem
|
|
Kindprozess gestartet werden. Der Kindprozess erstellt diese Threads
|
|
beim Start und erstellt später keine weiteren mehr. Wenn Sie ein
|
|
MPM wie <module>mpm_winnt</module> verwenden, wo nur ein
|
|
Kindprozess existiert, dann sollte diese Angabe hoch genug sein,
|
|
die gesamte Last des Servers zu bewältigen. Wenn Sie ein MPM
|
|
wie <module>worker</module> verwenden, wo mehrere Kindprozesse
|
|
existieren, dann sollte die <em>Gesamt</em>zahl der Thread groß
|
|
genug sein, die übliche Last auf dem Server zu bewältigen.</p>
|
|
|
|
<p>Die Voreinstellung für <directive>ThreadsPerChild</directive> ist
|
|
<code>64</code>, wenn <module>mpm_winnt</module> verwendet wird, und
|
|
<code>25</code> bei der Verwendung der anderen MPMs.</p>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>ThreadStackSize</name>
|
|
<description>Die Größe des Stacks in Bytes, der von Threads
|
|
verwendet wird, die Client-Verbindungen bearbeiten.</description>
|
|
<syntax>ThreadStackSize <var>size</var></syntax>
|
|
<default>65536 unter NetWare; variiert bei anderen Betriebssystemen.</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>leader</module><module>mpm_netware</module>
|
|
<module>mpm_winnt</module><module>perchild</module>
|
|
<module>threadpool</module><module>worker</module>
|
|
</modulelist>
|
|
<compatibility>Verfügbar seit Version 2.1</compatibility>
|
|
|
|
<usage>
|
|
<p>Die Direktive <directive>ThreadStackSize</directive> legt die
|
|
Größe des Stacks (für Autodaten) der Threads fest, die
|
|
Client-Verbindungen bearbeiten und Module aufrufen, welche bei der
|
|
Verarbeitung dieser Verbindungen helfen. In den meisten Fällen ist die
|
|
Voreinstellung des Betriebssystems angemessen, doch unter bestimmten
|
|
Umständen kann es sinnvoll sein, den Wert anzupassen:</p>
|
|
|
|
<ul>
|
|
<li>Auf Plattformen mit einer relativ kleinen Voreingestellung für
|
|
die Größe des Thread-Stacks (z.B. HP-UX) kann der Apache bei
|
|
der Verwendung einiger Drittanbietermodule, die einen relativ hohen Bedarf
|
|
an Speicherplatz haben, abstürzen. Ebendiese Module arbeiten
|
|
möglicherweise problemlos auf anderen Plattformen, wo der
|
|
voreingestellte Thread-Stack größer ist. Derartige
|
|
Abstürze können Sie vermeiden, indem Sie
|
|
<directive>ThreadStackSize</directive> auf einen höheren Wert als die
|
|
Betriebssystemvoreinstellung setzen. Eine solche Anpassung ist nur
|
|
notwendig, wenn es vom Anbieter des Moduls so spezifiziert wurde oder die
|
|
Diagnose eines Apache-Absturzes ergeben hat, das die
|
|
Thread-Stackgröße zu klein war.</li>
|
|
|
|
<li>Auf Plattformen, wo die voreingestellte Thread-Stackgröße
|
|
für die Webserverkonfiguration deutlich größer als
|
|
notwendig ist, kann eine größere Anzahl von Threads pro
|
|
Kindprozess erreicht werden, wenn <directive>ThreadStackSize</directive>
|
|
auf einen Wert kleiner als die Betriebssystemvoreinstellung gesetzt wird.
|
|
Da es einzelne Anfragen geben kann, die mehr Stack zur Verarbeitung
|
|
benötigen, sollte eine derartige Korrektur ausschließlich in
|
|
Testumgebungen zum Einsatz kommen, auf denen die gesamte
|
|
Webserververarbeitung ausprobiert werden kann. Eine Änderung der
|
|
Webserverkonfiguration kann den aktuellen Wert der
|
|
<directive>ThreadStackSize</directive> ungültig machen.</li>
|
|
</ul>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>User</name>
|
|
<description>Die Benutzerkennung, unter welcher der Server Anfragen
|
|
beantwortet</description>
|
|
<syntax>User <var>Unix-User-ID</var></syntax>
|
|
<default>User #-1</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
<modulelist><module>leader</module><module>perchild</module>
|
|
<module>prefork</module><module>threadpool</module><module>worker</module>
|
|
</modulelist>
|
|
<compatibility>Seit Apache 2.0 nur in der globalen Server-Konfiguration
|
|
gültig</compatibility>
|
|
|
|
<usage>
|
|
<p>Die Direktive <directive>User</directive> legt die Benutzerkennung
|
|
fest, mit der der Server Anfragen beantwortet. Um diese Anweisung
|
|
zu verwenden, muss der Server als <code>root</code> gestartet werden.
|
|
Wenn Sie den Server unter einem nicht-root-Benutzer starten, kann
|
|
er nicht zu dem minder privilegierten Benutzer wechseln und wird statt
|
|
dessen weiter mit der ursprünglichen Benutzerkennung laufen.
|
|
Wenn Sie den Server als <code>root</code> starten, dann ist es normal,
|
|
dass der Elternprozess als root weiterläuft.
|
|
<var>Unix-User-ID</var> kann sein:</p>
|
|
|
|
<dl>
|
|
<dt>Ein Benutzername</dt>
|
|
<dd>Verweist auf den durch Namen angegebenen Benutzer.</dd>
|
|
|
|
<dt># gefolgt von einer Benutzernummer.</dt>
|
|
<dd>Verweist auf einen durch eine Nummer angegebenen Benutzer.</dd>
|
|
</dl>
|
|
|
|
<p>Der Benutzer sollte keine Rechte besitzen, die dazu führen,
|
|
dass er in der Lage ist, auf Dateien zuzugreifen, die nicht dafür
|
|
bestimmt sind, für die Außenwelt sichtbar zu sein.
|
|
Gleichermaßen sollte der Benutzer nicht in der Lage sein,
|
|
Code auszuführen, der nicht für HTTP-Anfragen bestimmt ist.
|
|
Es wird empfohlen, einen neuen Benutzer und eine neue Gruppe speziell
|
|
zur Ausführung des Servers zu erstellen. Einige Administratoren
|
|
verwenden den Benutzer <code>nobody</code>. Dies ist jedoch nicht
|
|
immer wünschenswert, da der Benuter <code>nobody</code> andere
|
|
Rechte auf dem System besitzen kann.</p>
|
|
|
|
<note type="warning"><title>Sicherheit</title>
|
|
<p>Setzen Sie <directive>User</directive> (oder <directive
|
|
module="mpm_common">Group</directive>) nicht auf <code>root</code>,
|
|
solange Sie nicht genau wissen, was Sie tun, und welches die Gefahren
|
|
sind.</p>
|
|
</note>
|
|
|
|
<p>Beim MPM <module>perchild</module>, das dafür gedacht ist,
|
|
virtuelle Hosts unter verschiedenen Benutzerkennungen auszuführen,
|
|
bestimmt die Direktive <directive>User</directive> die
|
|
Benutzerkennung für den Hauptserver und bildet den Rückfallwert
|
|
für <directive type="section"
|
|
module="core">VirtualHost</directive>-Abschnitte ohne eine
|
|
<directive module="perchild">AssignUserID</directive>-Anweisung.</p>
|
|
|
|
<p>Wichtiger Hinweis: Die Verwendung dieser Direktive innerhalb von
|
|
<directive module="core" type="section">VirtualHost</directive> wird
|
|
nicht mehr unterstützt. Benutzen Sie <directive
|
|
module="mod_suexec">SuexecUserGroup</directive>, um Ihren Server
|
|
für <program>suexec</program> einzurichten.</p>
|
|
|
|
<note><title>Anmerkung</title>
|
|
<p>Obwohl die Direktive <directive>User</directive> in den MPMs
|
|
<module>beos</module> und <module>mpmt_os2</module> existiert, ist
|
|
sie dort tatsächlich eine Leeranweisung und exisitert nur
|
|
aus Kompatibilitätsgründen.</p>
|
|
</note>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
</modulesynopsis>
|