Lugs Penguin Logo

LUGS - Vorträge: Web-Server Apache vom 8.1.1998

LUGS

Über die LUGS
Statuten und Protokolle
Sektionen
Terminliste
IRC
Mailinglisten
Kontaktadressen
Mitglied werden
Internes
Mitgliederliste

LINUX

Was ist Linux?
   Screenshots
Distributionen
   kmLinux
Firmen
Ressourcen
LIB

Dokumentation
Events
Projekte
Vorträge
Allgemeines

ChangeLog
Sprache
Galerie

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.

Powered by Linux, served by Apache / PHP, last changes done 04.02.2008 -- Copyright