Am 8.1.1998 hat Beat Rubischon wie im letzten fLugs
angekündigt, einen Vortrag über den Apache Webserver
gehalten. Ich werde mich in dieser Rückschau an seinen
Vortragsaufbau halten, kann aber nicht alles wiedergeben, was Beat
gesagt hat, aus dem einfachen Grund, weil ich nicht alles habe
aufschreiben können.
Beat hat seinen Vortrag so gegliedert:
- Auspacken und Kompilieren
- Konfigurieren
- Aufbau seines Apache
und hat sich dabei auf die relativ aktuelle Version 1.2.4
bezogen. Ziel ist, dass jeder auf seinem Linux-PC einen Apache
Webserver installieren und konfigurieren kann.
Vorbemerkungen - Einführung
Den Apache Webserver kann man sehr vielfältig einsetzen:
z. B. als Server, um Files zum Download anzubieten, für die
Buchhaltung, um Videos zu sortieren oder um seine eigene Webpage zu
präsentieren.
Der Markt der Webserver ist relativ einseitig vom Apache dominiert,
sein Marktanteil liegt im Moment bei 45% (Zahlen vom Januar 1998 von
Netcraft). Nächster Verfolger ist Microsoft mit dem IIS und
fast 21%. Weitere Webserver für Linux:
- wm (kompliziert zu konfigurieren)
- Cern (von W3C, zur Zeit
nicht weiterentwickelt, es gibt höchstens Security Patches)
- Jigsaw (in Java
geschrieben, erste Beta ist jetzt da)
- NCSA (funktioniert seit Kernel 1.3.?? nicht mehr wegen der
änderungen am Kernel)
Apache ist auch für andere Systeme als Linux (wurde
ursprünglich auf Linux entwickelt) erhältlich: Solaris
(Sun), Irix (SGI), OS/2, Windows 95/NT (Beta-Version 1.3b3).
Auspacken und Kompilieren
Apache als Source erhält man zum Beispiel über die Web-Page von Apache oder auch vom Mirror der
Switch. Aktuell ist dort die Version 1.2.5 zu haben.
Nach dem Auspacken findet man im neuen Apache-Unterverzeichnis vor
allem die Sourcen, die Dokumentation (in HTML) und ein paar
Bildchen. Gemäss README muss man sich für die
Kompilation das File INSTALL im Source-Verzeichnis
vornehmen. Dort steht dann auch die genaue Anleitung drin.
Im wesentlich geht es um das File Configuration, in
welchem alle Einstellungen vorgenommen werden. Dort kann man
einstellen welche Module hinzukompiliert werden sollen und welche
Optionen an den Compiler übergeben werden sollen. Ich habe dort
überhaupt nichts geändert und einfach so
./Configure aufgerufen.
Nächster Schritt: make. Wenn alles glatt geht,
erscheint nachher ein ausführbares Programm (httpd).
Konfiguration
Wichtig ist, dass immer folgende drei Files im
Konfigurations-Verzeichnis vorhanden sein müssen:
httpd.conf, access.conf und
srm.conf. (Die letzten beiden kann man im ersten auf
/dev/null umändern, dann reicht eines.) Welche Option
in welchem File drinsteht ist dann nicht wichtig. Standardmässig
sind die Optionen aber auf die drei Files verteilt und so wollen wir
sie auch besprechen.
Das File httpd.conf
Wichtige Parameter, die man in diesem File einstellen kann sind:
- ServerType
- bestimmt ob der Server über den inetd bei jeder
Anfrage angeworfen werden soll, oder ob ständig ein Server
laufen soll (beim Booten gestartet). Das beeinflusst die
Geschwindigkeit ganz entscheidend: der inetd startet z. B.
für jedes Bild (das eine separate Abfrage erfordert) einen
neuen Apache, und dieser muss zuerst die Konfigurations-Files
parsen, was seine Zeit dauert. Im Standalone-Betrieb braucht der
Apache zwar ständig etwas Speicher, aber der ist ja
heutzutage billig.
- ServerName
- bezeichnet den Namen, auf den der Webserver hören soll, also
z. B. www.lugs.ch.
- CacheNegotiatedDocs
- sollte eingeschaltet werden. Diese Option ist standardmässig
ausgeschaltet und verhindert damit, dass Proxy-Server die Seiten
dieses Webservers speichern. Genau das ist aber eine gute
Möglichkeit, um das Surfen auf dem Internet zu beschleunigen.
- Min- und MaxSpareServers
- speichern die minimale und maximale Anzahl unbeschäftigter
Webserver. Apache startet neue Kinder, wenn viele Anfragen kommen,
um sie schneller zu bearbeiten. Diese Kinder werden wieder
aufgelöst, wenn zu viele von ihnen unbeschäftigt
sind. Weiter kann man mit StartServers einstellen,
wieviele Server am Anfang gestartet werden sollen und mit
MaxClients, wieviele gleichzeitig laufen dürfen.
Mit MaxRequestsPerChild wird bestimmt, nach wievielen
bearbeiteten Anfragen ein Kind sterben soll: das verhindert das
unbeschränkte Anwachsen eines Kindes aufgrund von
Speicherlöchern im Apache oder in einer Library.
Weiter kann man in diesem File virtuelle Hosts konfigurieren,
d. h. ein Apache Webserver benimmt sich so, als ob er zwei sei. Das
hat den Vorteil, dass ein Computer für mehrere Domains den
Webserver spielen kann.
Das File access.conf
In diesem File werden die globale Zugriffs-Konfiguration
gespeichert. Standardmässig ist diese Einstellung in Ordnung, um
erste Erfahrung zu Hause zu sammeln.
Das File srm.conf
Wichtige Punkte, die in diesem File eingestellt werden können
sind:
- UserDir
- ist auf public_html voreingestellt. Wenn jemand
z. B. die Seite http://www.lugs.ch/~philipp/
abfragen möchte, dann liefert der Server den Inhalt von
/home/philipp/public_html/index.html zurück. Damit
kann jeder User seine eigene Homepage haben.
- AddIcon
- bestimmt, wie File-Listen aussehen sollen, die der Server erzeugt,
wenn er in einem Verzeichnis kein index.html
findet.
- AddLanguage
- verbindet eine Sprach-Abkürzung mit einer File-Endung. Bei
Netscape (auch bei anderen Browsern?) kann der Benutzer eine
Prioritätenliste von Sprachen angeben. Der Browser fragt den
Server zuerst nach Dokumenten in diesen Sprachen, bevor die
Standardseite angezeigt wird. Man kann dann also
index.html.de für deutschsprachige Besucher und
index.html.en für den Rest der Welt
bereithalten.
Am Schluss des Files kann der ambitionierte Webserver-Administrator
das Aussehen der Fehlermeldungen bestimmen, die der Server dem Surfer
ausgibt.
Der Apache wird nun mit httpd -f
/Pfad/httpd.conf gestartet, vorzugsweise beim Booten
von einem Startup-Skript.
Mime
Im File mime.types stehen die Verknüpfungen
zwischen den Erweiterungen der Dateinamen und den Inhalten. D. h. es
steht dort, dass ein File mit Endung .wav eine Audiodatei
im Wave-Format ist. Ein Browser, der dann die Daten mit dieser
Information erhält, hat eine eigene Tabelle in welcher steht, zu
welchen Inhalten welches Wiedergabe-Programm gehört.
Damit sind alle Konfigurations-Files des Apache Webservers
besprochen und es sollte eigentlich jeder Leser mit vertretbarem
Aufwand einen solchen Server aufsetzen können. Wenn der steht,
ist der Schritt zur eigenen Homepage auf dem eigenen Webserver auf dem
eigenen Computer auf der eigenen Domain nicht mehr gross.
Aufbau von Beats Apache
Speziell am Aufbau von Beats Apache ist, dass er mehrere virtuelle
Server laufen lässt. Das zu besprechen führt allerdings
über das Ziel dieses Artikels hinaus wird vielleicht später
besprochen...
Zusammenfassung des Vortrages durch Philipp Frauenfelder.
|