Allgemeines zur Apache2-Konfiguration

Aufbau des Konfigurationsverzeichnisses:

/etc/apache2/
|——–> conf.d/
|——–> Mods-available/
|——–> Mods-enabled/
|——–> Sites-available/
|——–> Sites-enabled/
|——–> ssl/
|——–> apache2.conf
|——–> envvars
|——–> httpd.conf
|——–> jk-workers.properties
|——–> ports.conf

 

In der obigen Abbildung ist der Standardaufbau des Apache-Konfigurationsverzeichnisses zu sehen. Die Einzelnen Punkt werden nun im Folgenden durchgegangen. Sie werden der Rehe nach von oben nach unten durchgegangen.

conf.d

Im Verzeichnis „conf.d“ liegen zusätzliche Konfigurationsdateien, welche nicht unbedingt vom Apache2 selbst stammen müssen. Viele Applikationen legen ihre Konfigs hier ab um sich so in den Apache einzubinden. Zum Beispiel legt Nagios seine Apache spezifischen Konfigs hier ab. Alle Dateien die hierin liegen, werden automatisch eingebunden. Standardmäßig liegen hier auch immer die Dateien „charset“ und „security“. „charset“ würde den Apache2 dazu veranlassen, beim ausreichen von Dateien dies in einen Andern Charset auszugeben. Aber dies ist meist immer deaktiviert, da es an sich eine schlecht Idee ist, das Charset so zu manipulieren. „security“ gibt an, was der Apache im Fehlerfall an Informationen preisgeben soll. So Informationen wie Name, OS, Module, Requestbody, Signatur. Sollte man immer auf ein so wenig wie möglich begrenzen.

mods-available und mods-enabled

Unterhalb von „mods-available“ liegen alle Konfigurationen der mit Apache2 ausgelieferten und auch im Nachhinein installierten Module. Meist sind es nur simple Load-Anweisungen. Aber auch komplette Konfigurationen wie zum Beispiel bei mod_fcgi und mod_jk. Konfiguration in diesem Verzeichnis werden nicht automatisch geladen. Sie werden hier nur vorgehalten. Dies erklärt sich im Zusammenhang mit dem Verzeichnis namens „mods-enabled“. Denn wenn hier eine Konfig liegt, wird diese wieder automatisch eingebunden. Im laufe der zeit hatte es sich beim Apache2-Projekt eingebürgert, die Konfigs immer vor zuhalten und dann bei bedarf in „mods-enabled“ rein zu linken. D.h. die Konfigs liegen unterhalb von „mods-available“ und werden nur mittels eines symbolischen Links in „mods-enabled“ in die Gesamtkonfiguration vom Apache2 eingebunden. Dies ist allerdings Keine Pflicht. Man kann Konfigs auch direkt unterhalb von „mods-enabled“ ablegen.

sites-available und sites-enabled

Mit den Sites verhält es sich ähnlich wie mit den Mods. Es gibt einmal das „available“ Verzeichnis wo die eigentlichen Konfigs drin liegen und dann das „enabled“ Verzeichnis wo dann die aktiven Sites rein gelinkt werden. Daran wird sich bei der jetzigen Konfiguration allerdings nicht gehalten. Die aktiven Konfigs der Seiten liegen auch direkt im „enabled“ Verzeichnis. Sie werden nicht noch extra rein gelinkt.

SSL allgemein

Hier liegen die SSL-Zertifikate welche der Apache2 benutzen soll. Dieses Verzeichnis muss nicht immer bestehen, teilweise wird auch auf „/etc/ssl“ zurückgegriffen. Meist liegen die Zertifikate in „pem“-Form vor. Das heißt das Key und Zertifikat in einer Datei vereinigt sind. Daneben liegt dann meist noch das CA-Bundle. Dieses liefert noch einmal die Root-Zertifikate, mit welchen das eigene Zertifikat unterschrieben wurde. Das macht pro Domain dann immer 2 Dateien. Obwohl, wenn man die Zertifikate alle vom Selben Aussteller hat, es reichen würde immer auf ein ca-bundle zu verweisen.

Zertifikate haben immer nur eine begrenzte Gültigkeit. Danach müssen sie erneuert werden. D.h. In den meisten Fällen neu ausgestellt werden. Zertifikate lassen sich günstig und einfach von http://www.ready2host.de/ beziehen. Dort gibt es dann auch immer eine Einbauanleitung.

apache.conf

In der apche2.conf steht die Hauptkonfiguration des Apache2-Webserver. Hier muss man eigentlich selten Hand anlegen, da die Presets immer sehr gut funktionieren. Wichtig sind für einen nur zB. Die KeepAlive-Einstellungen. Diese stehen ganz oben in der Konfig. Auch sind dort gleich die Einstellungen zum Thread-Management. Am Ende der Datei stehen noch einige vHost-Sondereinstellungen (siehe 3.2.1).

envvars

Hier sind nur 3 Variablen hinterlegt. Dies ist eine Eigenart von Debian/Ubuntu. Die Variablen, besagen nur unter welchen User und welcher Gruppe der Webserver ausgeführt werden soll. Weiterhin noch wo die PID gespeichert werden soll.

httpd.conf

Diese Datei ist meist leer. In mach anderen Systemen ist dies die Hauptkonfiguration. Deswegen existiert sie auch hier, falls Programme nach ihr suchen. Aus welchen Gründen auch immer.

jk-workes-properties

Diese Datei ist zwar kein Standard,aber in Zusammenhang mit Tomcat wichtig. Sie besagt welcher Tomcat unter welchen Namen in der Apache2-Konfiguration anzusprechen ist. Auch werden hier die Balancer konfiguriert. Diese Datei ist immer im Zusammenhang mit „mod_jk“ zu betrachten.

ports.conf

Diese Datei stellt wieder eine Eigenart von Debian/Ubuntu dar. Hier sind allein nur die Ports gelistet auf welchen der Apache2 lauschen soll. Im Standardfall sind dies immer Port 80 und Port 443.