Dies ist eine AlteSeite aus unserem UseModWiki bei Sourceforge.
Bitte überarbeite die Seite, passe die Formatierung für das JSPWiki an
und entferne diesen Text.
Vielen Dank!
{{{
= Apache =
Den Apache hier vorzustellen, hiesse Eulen nach Athen tragen. Daher
gibts
alle Infos unter http://www.apache.org und hier nur ein paar Infos
zu
besonderen Themen:
== Virtual Hosts ==
Wer mehrere verschiedene Webauftritte auf einem einzelnen Rechner
unterbringen
will, kann dies mit sogenannten "Virtual Hosts" tun. Dabei wird ein
und
derselbe Rechner unter unterschiedlichen DNS-Namen aufgerufen und
der
Benutzer bekommt jedesmal einen komplett anderen Webauftritt zu
sehen.
Im Prinzip konfiguriert man dies in der Datei
''/etc/apache/httpd.conf''
folgendermassen:
<pre>
NameVirtualHost *
<VirtualHost *>
ServerName localhost
DocumentRoot /var/www
</VirtualHost>
<VirtualHost *>
ServerName jens
DocumentRoot /home/jens/public_html/
ScriptAlias /cgi-bin/ /home/jens/public_html/cgi-bin/
</VirtualHost>
<VirtualHost *>
ServerName bayen.bayen.loc
DocumentRoot /home/tbayen/public_html/
ScriptAlias /cgi-bin/ /home/tbayen/public_html/cgi-bin/
</VirtualHost>
</pre>
Alternativ kann man auch das Modul ''mod_vhost_alias'' zu Hilfe
nehmen.
Dieses ist interessant, wenn ich wirklich viele Namen und
Webauftritte
verwalten will. So kann z.B. jeder Benutzer einen eigenen
Webauftritt
unter seinem Benutzernamen haben, wenn man folgendes in die
''/etc/apache/httpd.conf'' einfügt:
<pre>
VirtualDocumentRoot /home/%1/public_html
VirtualScriptAlias /home/%1/public_html/cgi-bin
</pre>
(Im Beispiel ist "%1" verwendet worden. Dies entspricht dem ersten
Teil des
verwendeten DNS-Namens. Mit "%0" kann man den gesamten Namen als
Verzeichnisnamen einfügen.)
=== Namensauflösung ===
Zu beachten ist, daß diese Einstellungen hier nichts mit der
Namensauflösung
zu tun haben. Man muss also selbstverständlich den Nameserver auch
noch
entsprechend konfigurieren.
== SSL ==
Wer verschlüsselte Verbindungen per SSL haben möchte, kann dazu
zwei Wege beschreiten. Es gibt ein '''mod_ssl'''-Modul, das im
Apache wie andere Module geladen werden kann und es gibt eine
SSL-fähige Apache-Version namens '''apache-ssl'''. Scheinbar ist es
reine Geschmackssache, welche Lösung man benutzt und auch die
Konfigurationsbefehle scheinen ähnlich zu sein. Ich habe hier mit
dem Debian-Paket "apache-ssl" herumgespielt und dabei folgendes
herausgefunden:
=== Erzeugung eines Zertifikats ===
Wenn man apache-ssl installiert, wird man nach einigen Angaben für
das Zertifikat gefragt. Dort hat man schnell was falsches
eingegeben. Außerdem ist das dort erzeugte Zertifikat natürlich
auch recht schnell abgelaufen. Deshalb ist es sinnvoll, zu wissen,
wie man eigene Zertifikate erstellt. Dies ist natürlich
insbesondere nötig, wenn man mehrere virtuelle Domains versorgen
will.
Als erstes muss man eine Schlüsseldatei erzeugen:
openssl genssl >key.pem
Dann kann man mit deren Hilfe ein selbst-signiertes Zertifikat
erstellen:
openssl req -new -x509 -key key.pem -out mein.server.loc.pem
-days 1095
(1095 Tage sind drei Jahre, das ist die Gültigkeit des Zertifikats)
Der Witz dabei ist, daß man als Namen (''YOUR Name'') den
Domainnamen des Webservers angibt, auf den man nachher zugreifen
will. Es empfiehlt sich, dafür zu sorgen, daß wirklich nur ein Name
benutzt wird. (Also z.B. nicht mit und ohne Domain).
Dieses Zertifikat kann man dann nach ''/usr/lib/ssl/certs/''
kopieren, wo openssl es dann problemlos findet.
Die Konfiguration liegt in '''/etc/apache-ssl/httpd.conf'''. Dort
such man den Befehl '''SSLCertificateFile''' und gibt den
Dateinamen des Zertifikates an.
=== SSL und virtuelle Domains ===
Beides zusammen ist leider gar nicht einfach. Im Gegenteil - aus
protokolltechnischen Gründen ist es sogar eigentlich unmöglich. Die
Auswahl unterschiedlicher SSL-Zertifikate funktioniert nur anhand
unterschiedlicher IP-Adressen oder Ports, nicht anhand des Namens
(siehe http://www.modssl.org/docs/2.8/ssl_faq.html#ToC47). Als
Notlösung kann man jedoch mit der '''Listen'''-Direktive den Server
auf unterschiedlichen Ports lauschen lassen und diese dann in der
VirtualHost-Direktive angeben. Innerhalb des VirtualHost-Blocks
kommt dann der SSLCertificateFile-Befehl.
=== Alternativen ===
Der Apache ist sicherlcih der am weitesten verbreitete Webserver.
In speziellen Anwendungsfällen, d.h. immer, wenn die Hauptaufgabe
nicht aus dem Ausliefern von statischen Webseiten besteht, können
aber auch Alternativen herangezogen werden. Für Java-Anwendungen
bietet sich zum Beispiel der TomcatUnterDebian an. Sehr gut
geeignet ist der Apache auch, um solche spezialisierten Lösungen
miteinander zu verbinden, indem z.B. Anfragen an eine
Java-Applikation an einen Tomcat "durchgereicht" werden.
-- ThomasBayen
}}}