Das Apache-Projekt hat zum Ziel in einer gemeinschaftlichen Entwicklung einen robusten, einem kommerziellen Produkt in nichts nachstehenden und mit freiem Quellcode verfügbarer http (Web)Server zu bauen. Das Projekt wird unterhalten von einer weltweiten Gruppe aus Volutären, welche das Internet als Medium für Kommunikation, Planung und Entwicklung benutzen. Diese Volutäre sind bekannt als "The Apache Group". Zusätzlich hunderte von Benutzern senden Ideen, Quellcode und Dokumentationen für das Projekt. | ||
| --www.apache.org | ||
Apache ist ganz einfach der beste Webserver, sehr flexibel, ein den jeweiligen Ansprüchen anzupassender Webserver. Auch ist er E-X-T-R-E-M stabil. Ich konnte noch nie einen Absturz in einer Produktions-Umgebung miterleben.
Hauptserver: http://www.apache.org/dist/httpd/
cd /usr/local/ tar -xvzf apache_1.3.26.tar.gz |
Download von: http://www.delouw.ch/linux/apache-patch_HARD_SERVER_LIMIT.txt
--- httpd.h Thu Mar 21 18:07:34 2002 +++ httpd.h-new Sun Apr 7 13:34:11 2002 @@ -320,7 +320,7 @@ #elif defined(NETWARE) #define HARD_SERVER_LIMIT 2048 #else -#define HARD_SERVER_LIMIT 256 +#define HARD_SERVER_LIMIT 512 #endif #endif |
Dieser Patch erhöht die maximale Anzahl laufender Prozesse, und damit die Anzahl maximal gleichzeitig zugreifender Benutzer auf 512. Man kann diese Zahl durchaus weiter erhöhen, man muss dabei allerdings an die Kernel-Limits und an /etc/security/limits.conf denken.
![]() | Sicherstellung von genügend Resourcen |
|---|---|
Mit falschen Einstellungen in /etc/security/limits.conf und/oder falsch konfiguriertem Kernel kann man sich einen »Self-Denial-Of-Service-Attack bescheren. Stellen Sie sicher, dass immer genügend Tasks for root exklusiv zur Verfügung stehen. Bei Linux Kernel 2.2.x müssen ebenfalls die Kernel Quellcodes angepasst werden |
Um den patch anzuwenden:
cd /usr/local/apache_1.3.26/src/include patch -p0 < apache-patch_HARD_SERVER_LIMIT.txt |
Dieses Module gibt die Möglichkeit starke Verschlüsslung mit dem Apache 1.3.x einzusetzen. Das verwendete Protokoll ist Secure Socket Layer (SSL v2/v3) und Transport Layer Security (TLS v1). Dafür greift mod_ssl auf die OpenSource Bibliothek OpenSSL, welche auch SSLeay von Eric A. Young und Tim J. Hudson basiert zurück. | ||
| --www.modssl.org | ||
Dieses Modul wird benötigt um dem Apache die Möglichkeit zu geben, Daten verschlüsselt über das Internet zum Client zu transportieren. Es ist ein Patch für den Apache-Quellcode und erweitert dessen API(Application Programming Interface). Das Resultat nennt sich EAPI (Extended Application Programming Interface).
Falls mod_ssl eingesetzt wird, ist es sehr wichtig, alle anderen Module mit dem Compiler-Flag -DEAPI zu kompilieren, sonst könnte es sein, das Apache einfach abstürzt, oder gar nicht erst läuft. Fast alle Module erkennen dies allerdings selbstständig, eine Ausnahme dabei ist mod_jserv und mod_jk
cd /usr/local/ tar -xvzf mod_ssl-2.8.10-1.3.26.tar.gz cd mod_ssl-2.8.10-1.3.26/ ./configure \ --with-apache=../apache_1.3.26 \ |
Mit mod_perl ist es möglich, Apache-Module komplett in Perl zu entwickeln. Da der Interpreter in den Apache integriert wird, muss im Gegensatz zu CGI nicht bei jedem Request ein neuer Prozess gestartet werden. Dies spart sehr viel Overhead, und macht die Applikationen schneller. | ||
| --perl.apache.org | ||
Mod_perl ist eine Art Ersatz von CGIs. CGI's starten üblicherweise bei jedem Request einen neuen Prozess, welches die Performance natürlich in Mitleidenschaft zieht. Mod_perl verhindert genau dies.
cd /usr/local tar -xvzf mod_perl-1.27.tar.gz cd mod_perl-1.27 perl Makefile.PL \ EVERYTHING=1 \ APACHE_SRC=../apache_1.3.26/src \ USE_APACI=1 \ PREP_HTTPD=1 \ DO_HTTPD=1 make make install |
Kompilieren Sie mod_perl nicht als DSO (Dynamic Shared Object)
![]() | Mod_perl kann nicht als DSO kompiliert werden |
|---|---|
Kompilieren Sie mod_perl nicht als DSO (Dynamic Shared Object)! Aufgrund von Meldungen soll Apache nicht mehr lauffähig sein. |
Nun sind die beiden statischen Module mod_ssl und mod_perl dem Apache-Quellcode zugefügt worden, der Apache ist jetzt bereit zur Konfiguration.
EAPI_MM="/usr/local/mm-1.1.3" SSL_BASE="/usr/local/ssl" \ ./configure \ --enable-module=unique_id \ --enable-module=rewrite \ --enable-module=speling \ --enable-module=expires \ --enable-module=info \ --enable-module=log_agent \ --enable-module=log_referer \ --enable-module=usertrack \ --enable-module=proxy \ --enable-module=userdir \ --enable-module=so \ --enable-shared=ssl \ --enable-module=ssl \ --activate-module=src/modules/perl/libperl.a \ --enable-module=perl make make install |
cd /usr/local/ssl/bin ./openssl req -new > new.cert.csr ./openssl rsa -in privkey.pem -out new.cert.key ./openssl x509 -in new.cert.csr \ -out new.cert.cert -req -signkey new.cert.key \ -days 999 cp new.cert.key /usr/local/apache/conf/ssl.key/server.key cp new.cert.cert /usr/local/apache/conf/ssl.crt/server.crt |
![]() | Common name |
|---|---|
OpenSSL fragt nach verschiedenen Dingen. Ein oft gemachter Fehler ist das Missverstehen von »common name« Hier ist der »Fully Qualified Hostname« gemeint, also zum Beispiel www.foo.org |