# 3.3.10 Selbsttest zu Apache Konfiguration

Aufgabe 1

Welche Aussagen über den Apache Webserver treffen zu?

A) Man kann beim Apache Webserver die Anzahl der Bearbeiterprozesse (=Workerprozesse) einstellen.

B) Man kann beim Apache Webserver die Anzahl der Managerprozesse einstellen.

C) Es gibt eine Haupt-Konfigurationsdatei, die aber viele weitere Konfigurationsanweisungen einbindet.

D) Alle Konfigurationsdateien müssen immer im gleichen Verzeichnis liegen.

Lösung zu Aufgabe 1

A) Richtig. Die Anzahl der Workerprozesse lässt sich einstellen, um die Leistung und Kapazität des Servers zu steuern.

C) Richtig. Apache verwendet eine Hauptkonfigurationsdatei (`httpd.conf` oder `apache2.conf`), die mit `Include`-Direktiven viele weitere Konfigurationsdateien einbinden kann.

B) Falsch. Die Anzahl der "Managerprozesse" (im Sinne eines dedizierten Management-Prozesses) ist im Apache Webserver nicht direkt konfigurierbar. Die Verwaltung erfolgt über die Konfiguration von Workerprozessen und Threads.
D) Falsch. Konfigurationsdateien müssen nicht alle im gleichen Verzeichnis liegen. Durch die `Include`-Direktive können Konfigurationsdateien aus verschiedenen Verzeichnissen eingebunden werden.

Aufgabe 2

Welche Direktiven gibt es für das Modul mpm_prefork?

A) StartServers

B) StopServers

C) MinSpareServers

D) MaxSpareServers

E) MaxBytes

F) MaxRequestWorkers

G) MaxConnectionsPerChild

Lösung zu Aufgabe 2

A) Richtig. StartServers bestimmt die Anzahl der Kinderprozesse, die beim Start erzeugt werden.

C) Richtig. MinSpareServers gibt die Mindestanzahl unbeschäftigter (freier) Kinderprozesse an, die bereitgehalten werden.

D) Richtig. MaxSpareServers legt die maximale Anzahl freier Kinderprozesse fest, die bereitgehalten werden.

F) Richtig. MaxRequestWorkers (früher MaxClients) begrenzt die maximale Anzahl von Anfragen, die gleichzeitig bedient werden können.

G) Richtig. MaxConnectionsPerChild legt fest, wie viele Anfragen ein Kinderprozess bedienen soll, bevor er neu gestartet wird.

B) Falsch. `StopServers` ist keine Direktive des Apache-Webservers. Die Kontrolle der Server stoppt durch externe Befehle oder Konfigurationen.
E) Falsch. `MaxBytes` ist keine Direktive des Moduls mpm_prefork oder des Apache-Webservers im Allgemeinen.

Aufgabe 3

Warum kann man in der Direktive MaxRequestWorkers die Anzahl der maximal zulässigen gleichzeitigen Verbindungen nicht einfach sehr hoch angeben?

A) Eine zu hohe Anzahl würde den Managerprozess überfordern.

B) Eine hohe Anzahl ist möglich, wenn der Server genügend Kindprozesse zulässt.

C) Eine hohe Anzahl ist möglich, wenn der RAM-Speicher groß genug ist, um alle Bearbeiterprozesse im Speicher zu halten.

Lösung zu Aufgabe 3

C) Richtig. Die Anzahl der gleichzeitigen Verbindungen, die ein Server bewältigen kann, hängt unter anderem vom verfügbaren RAM-Speicher ab. Wenn genügend Speicher vorhanden ist, um alle Prozesse zu unterstützen, kann die Anzahl der MaxRequestWorkers erhöht werden.

A) und B) Falsch. Der Managerprozess ist nicht direkt betroffen, und die Anzahl der Kindprozesse wird durch andere Direktiven als MaxRequestWorkers gesteuert.

Aufgabe 4

Welche Aussagen über Direktiven treffen zu?

A) Wenn man eine Direktive verwendet, wird das zugehörige Modul automatisch eingebunden.

B) Wenn man eine Direktive verwendet, muss man das dazugehörige Modul eingebunden (inkludiert) haben.

C) Die Direktive AllowOverride None sorgt dafür, dass die Ausführung von Anweisungen in .htaccess-Dateien verboten wird.

D) Mit den LimitRequest-Direktiven kann man Sicherheitseinstellungen für die Client Request Anfragen vornehmen.

E) Die Direktive LimitRequestBody 0 ist eine Sicherheitseinstellung, sodass kein Client Request Body zugelassen wird.

Lösung zu Aufgabe 4

B) Richtig. Bevor eine Direktive verwendet werden kann, muss das entsprechende Modul im Apache Webserver aktiviert oder eingebunden sein.

C) Richtig. AllowOverride None verhindert, dass .htaccess-Dateien verwendet werden, was die Sicherheit verbessern und die Performance erhöhen kann.

D) Richtig. Die LimitRequest-Direktiven ermöglichen es, bestimmte Anforderungen an den Request Body zu stellen, was als Sicherheitsmaßnahme dienen kann.

A) und E) Falsch. Die Verwendung einer Direktive führt nicht automatisch dazu, dass das zugehörige Modul eingebunden wird. Die Direktive LimitRequestBody mit dem Wert 0 würde tatsächlich jeden Request Body verbieten, was in den meisten Anwendungsfällen nicht gewünscht ist.