Was ist Apache?
Apache ist der beliebteste Webserver im Internet. Es wird verwendet, um mehr als die Hälfte aller aktiven Websites zu bedienen.
Obwohl es viele brauchbare Webserver gibt, die Ihre Inhalte bereitstellen, ist es hilfreich zu verstehen, wie Apache aufgrund seiner Allgegenwart funktioniert.
In diesem Artikel werden einige allgemeine Konfigurationsdateien und Optionen untersucht, die in ihnen gesteuert werden können., Dieser Artikel folgt dem Ubuntu / Debian-Layout von Apache-Dateien, das sich von dem unterscheidet, wie andere Distributionen die Konfigurationshierarchie erstellen.
So installieren Sie Apache unter Ubuntu und Debian
Wenn Sie Apache noch nicht installiert haben, können Sie dies jetzt tun, indem Sie die folgenden Befehle ausführen:
sudo apt-get updatesudo apt-get install apache2
Dies ist alles, was für einen funktionierenden Webserver erforderlich ist., Wenn Sie die IP-Adresse Ihres VPS in einem Webbrowser aufrufen, erhalten Sie die Standard-Apache-Indexseite:
your_domain_name_or_ip_address
It works!This is the default web page for this server.The web server software is running but no content has been added, yet.
Die Apache-Dateihierarchie in Ubuntu und Debian
Unter Ubuntu und Debian behält Apache seine Hauptkonfigurationsdateien im Ordner „/etc/apache2“ bei:
cd /etc/apache2ls -F
apache2.conf envvars magic mods-enabled/ sites-available/conf.d/ httpd.conf mods-available/ ports.conf sites-enabled/
In diesem Verzeichnis befinden sich eine Reihe von Nur-Text-Dateien und einige Unterverzeichnisse. Dies sind einige der nützlicheren Orte, mit denen Sie vertraut sein sollten:
- apache2.,conf: Dies ist die Hauptkonfigurationsdatei für den Server. Fast alle Konfigurationen können aus dieser Datei heraus vorgenommen werden, obwohl es der Einfachheit halber empfohlen wird, separate, bestimmte Dateien zu verwenden. Diese Datei konfiguriert Standardeinstellungen und ist der zentrale Zugriffspunkt für den Server zum Lesen von Konfigurationsdetails.
- Anschlüsse.conf: Diese Datei wird verwendet, um die Ports anzugeben, die virtuelle Hosts abhören sollen. Überprüfen Sie unbedingt, ob diese Datei korrekt ist, wenn Sie SSL konfigurieren.
- conf.d/: Dieses Verzeichnis wird zur Steuerung bestimmter Aspekte der Apache-Konfiguration verwendet., Beispielsweise wird es häufig verwendet, um die SSL-Konfiguration und Standardsicherheitsoptionen zu definieren.
- sites-available/: Dieses Verzeichnis enthält alle virtuellen Hostdateien, die verschiedene Websites definieren. Diese legen fest, welcher Inhalt für welche Anforderungen bereitgestellt wird. Dies sind verfügbare Konfigurationen, keine aktiven Konfigurationen.
- sites-enabled/: Dieses Verzeichnis legt fest, welche virtuellen Hostdefinitionen tatsächlich verwendet werden. Normalerweise besteht dieses Verzeichnis aus symbolischen Links zu Dateien, die im Verzeichnis „sites-available“ definiert sind.,
- mods -/: Diese Verzeichnisse ähneln in ihrer Funktion den Verzeichnissen der Sites, definieren jedoch Module, die optional geladen werden können.
Wie Sie sehen, erfolgt die Apache-Konfiguration nicht in einer einzigen monolithischen Datei, sondern durch einen modularen Aufbau, in dem neue Dateien nach Bedarf hinzugefügt und geändert werden können.
Blick auf die Apache2.conf-Datei
Die wichtigsten Konfigurationsdetails für Ihren Apache-Server befinden sich in der Datei „/etc/apache2 / apache2.conf“ – Datei.,
Diese Datei ist in drei Hauptabschnitte unterteilt: Konfiguration für den globalen Apache-Serverprozess, Konfiguration für den Standardserver und Konfiguration virtueller Hosts.
In Ubuntu und Debian ist der Großteil der Datei für globale Definitionen, und die Konfiguration des Standardservers und virtuelle Hosts wird am Ende behandelt, indem die „Include …“ Richtlinie.
Mit der Direktive“ Include “ kann Apache andere Konfigurationsdateien an der Stelle, an der die Anweisung angezeigt wird, in die aktuelle Datei einlesen., Das Ergebnis ist, dass Apache beim Start dynamisch eine übergreifende Konfigurationsdatei generiert.
Wenn Sie zum Ende der Datei scrollen, gibt es eine Reihe verschiedener „Include“ – Anweisungen. Diese laden Moduldefinitionen, die Ports.conf-Dokument, die spezifischen Konfigurationsdateien in der “ conf.d / „Verzeichnis und schließlich die Definitionen des virtuellen Hosts im Verzeichnis“ sites-enabled/“.
Wir werden uns auf den ersten Teil der Datei konzentrieren, um zu erfahren, wie Apache seine globalen Einstellungen definiert.,
Abschnitt Globale Konfiguration
Dieser Abschnitt wird verwendet, um einige Optionen zu konfigurieren, die steuern, wie Apache als Ganzes funktioniert.
Es gibt einige interessante Optionen, die Sie in diesem Abschnitt ändern möchten:
Timeout
Standardmäßig ist dieser Parameter auf „300“ gesetzt, was bedeutet, dass der Server maximal 300 Sekunden Zeit hat, um jede Anforderung zu erfüllen.
Dies ist wahrscheinlich zu hoch für die meisten Set-ups und kann sicher auf etwas zwischen 30 und 60 Sekunden fallen gelassen werden.,
KeepAlive
Wenn diese Option auf „On“ gesetzt ist, kann jede Verbindung offen bleiben, um mehrere Anforderungen desselben Clients zu verarbeiten.
Wenn dies auf „Aus“ gesetzt ist, muss jede Anforderung eine neue Verbindung herstellen, was je nach Setup und Verkehrssituation zu erheblichen Overheads führen kann.
MaxKeepAliveRequests
Dies steuert, wie viele separate Anforderungen jede Verbindung verarbeitet, bevor sie beendet wird. Wenn Sie diese Zahl hoch halten, kann Apache Inhalte für jeden Client effektiver bereitstellen.,
Wenn Sie diesen Wert auf 0 setzen, kann Apache für jede Verbindung eine unbegrenzte Anzahl von Anforderungen bereitstellen.
KeepAliveTimeout
Diese Einstellung gibt an, wie lange nach Abschluss der letzten Anforderung auf die nächste Anforderung gewartet werden soll. Wenn der Timeout-Schwellenwert erreicht ist,stirbt die Verbindung.
Dies bedeutet nur, dass der Server beim nächsten Anfordern von Inhalten eine neue Verbindung herstellt, um die Anforderung für den Inhalt der Seite zu verarbeiten, die der Client besucht.,
MPM-Konfiguration
Im nächsten Abschnitt wird die Konfiguration der MPM-Optionen (Multi-Processing Module) festgelegt. Sie können querverweisen, mit welchem Abschnitt Ihre Apache-Installation kompiliert wurde, indem Sie das Terminal verlassen und Folgendes eingeben:
apache2 -l
Compiled in modules: core.c mod_log_config.c mod_logio.c prefork.c http_core.c mod_so.c
Wie Sie auf diesem Server sehen können, „prefork.c “ ist ein Modul, das in kompiliert wurde und auch in der „apache2.conf“ – Datei. Ihre Installation kann mehrere zur Auswahl haben, aber nur eine kann ausgewählt werden.
Im entsprechenden Abschnitt können Sie die Konfiguration des Prefork MPM anpassen.,
Die standardmäßige virtuelle Hostdatei durchsuchen
Die Standarddeklaration für virtuelle Hosts befindet sich in einer Datei namens „default“ im Verzeichnis „sites-available“.
Wir können das allgemeine Format einer virtuellen Hostdatei kennenlernen, indem wir diese Datei untersuchen. Öffnen Sie die Datei mit dem folgenden Befehl:
sudo nano /etc/apache2/sites-available/default
Der virtuelle Standardhost ist so konfiguriert, dass er alle Anforderungen an Port 80, dem Standard-HTTP-Port, verarbeitet. Dies ist im Deklarationskopf definiert, in dem „*:80“ steht, dh Port 80 auf jeder Schnittstelle.,
Dies bedeutet jedoch nicht, dass jede Anforderung an den Server an diesem Port notwendigerweise behandelt wird. Apache verwendet die spezifischste Definition des virtuellen Hosts, die der Anforderung entspricht. Dies bedeutet, dass es diese Definition ersetzen könnte, wenn es eine spezifischere Definition gäbe.
Konfiguration des virtuellen Hosts der obersten Ebene
Diese Optionen werden innerhalb der Definition des virtuellen Hosts außerhalb einer anderen Unterdeklaration der unteren Ebene festgelegt. Sie gelten für den gesamten Virtuellen Host.
Die Option „ServerAdmin“ gibt eine Kontakt-E-Mail an, die bei Serverproblemen verwendet werden soll.,
Dies kann in eine Fehlerseite eingefügt werden, wenn in der“ /etc/apache2/conf „ServerSignature“ auf „Email“ gesetzt ist.d / security“ – Datei, stellen Sie also sicher, dass Sie bereit sind, die E-Mail zu erhalten, wenn Sie diese Einstellung anpassen.
Wenn wir dies als Vorlage für andere virtuelle Hostdefinitionen verwenden, möchten wir eine“ ServerName “ – Definition hinzufügen, die den Domänennamen oder die IP-Adresse angibt, die diese Anforderung verarbeiten soll. Dies ist die Option, die dem virtuellen Host Spezifität verleiht und es ihm ermöglicht, die Standarddefinition zu ändern, wenn sie mit dem Wert ServerName übereinstimmt.,
Sie können den virtuellen Host auch auf mehr als einen Namen anwenden, indem Sie die Definition“ ServerAlias “ verwenden. Dies bietet alternative Pfade, um zum gleichen Inhalt zu gelangen. Ein guter Anwendungsfall dafür ist das Hinzufügen derselben Domain, der „www“vorangestellt ist.
Die Option „DocumentRoot“ gibt an, wo sich der für diesen virtuellen Host angeforderte Inhalt befindet. Der virtuelle Standardhost ist so eingerichtet, dass er Inhalte aus dem Verzeichnis „/var/www“ unter Ubuntu bereitstellt.,
Verzeichnisdefinitionen
In der Definition des virtuellen Hosts gibt es Definitionen, wie der Server verschiedene Verzeichnisse innerhalb des Dateisystems behandelt. Apache wendet alle diese Richtungen in der Reihenfolge von der kürzesten zur längsten an, sodass erneut die Möglichkeit besteht, vorherige Optionen zu überschreiben.
Die erste Verzeichnisdefinition wendet Regeln für das Verzeichnis “ / “ oder root an. Dadurch wird die Basiskonfiguration für Ihren virtuellen Host bereitgestellt, da sie für alle Dateien gilt, die auf dem Dateisystem bereitgestellt werden.
Standardmäßig richtet Ubuntu keine Zugriffsbeschränkungen für das Dateisystem ein., Apache empfiehlt, einige Standardzugriffsbeschränkungen hinzuzufügen. Sie können dies folgendermaßen ändern:
<Directory />Options FollowSymLinksAllowOverride NoneOrder Deny,AllowDeny from All</Directory>
Dies verweigert den Zugriff auf alle Inhalte, sofern in nachfolgenden Verzeichnisdefinitionen nichts anderes angegeben ist.
Die nächste Verzeichnisdefinition ist für das Dokumentstammverzeichnis, daher wird die Option „Von allen zulassen“ angegeben, die die Option „/“ für dieses Verzeichnis überschreibt.
Die Option“ AllowOverride „wird verwendet, um zu entscheiden, ob ein“.die Datei“ htaccess “ kann Einstellungen überschreiben, wenn sie im Inhaltsverzeichnis abgelegt ist., Dies ist standardmäßig nicht zulässig, kann jedoch unter verschiedenen Umständen zum Aktivieren nützlich sein.
Alias-und ScriptAlias-Anweisungen
Verzeichnisdefinitionen gehen manchmal „Alias“ – oder „ScriptAlias“ – Anweisungen voraus. Alias ordnet einem Verzeichnispfad einen URL-Pfad zu.
ScriptAlias funktioniert auf die gleiche Weise, wird jedoch verwendet, um Verzeichnisse zu definieren, in denen ausführbare Komponenten enthalten sind.
Alias /content/ /path/to/content/
Nach dem Alias sollten Sie daran denken, das Verzeichnis mit Zugriffsrechten zu definieren, wie im vorherigen Abschnitt beschrieben.,
Sites und Module in Apache aktivieren
Sobald Sie eine virtuelle Hostdatei haben, die Ihren Anforderungen entspricht, können Sie die in Apache enthaltenen Tools verwenden, um sie in Live-Sites umzuwandeln.,
Um automatisch einen symbolischen Link im Verzeichnis „sites-enabled“ zu einer vorhandenen Datei im Verzeichnis „sites-available“ zu erstellen, geben Sie den folgenden Befehl aus:
sudo a2ensite virtual_host_file_name
Geben Sie nach dem Aktivieren einer Site den folgenden Befehl aus, um Apache anzuweisen, seine Konfigurationsdateien erneut zu lesen, damit die Änderung weitergegeben werden kann:
sudo service apache2 reload
Es gibt auch einen Begleitbefehl zum Deaktivieren einer virtuellen Gastgeber., Es funktioniert, indem Sie den symbolischen Link aus dem Verzeichnis „sites-enabled“ entfernen:
sudo a2dissite virtual_host_file_name
Laden Sie die Konfiguration erneut, um die Änderung vorzunehmen:
sudo service apache2 reload
Module können mit den Befehlen „a2enmod“ bzw. Sie funktionieren genauso wie die „Site“ – Versionen dieser Befehle.
Denken Sie daran, Ihre Konfigurationsänderungen neu zu laden, nachdem auch Module aktiviert oder deaktiviert wurden.
Fazit
Wir haben einige grundlegende Apache-Konfigurationsdateien durchgesehen., Apache ist vielseitig und sehr modular aufgebaut, sodass die Konfigurationsanforderungen je nach Setup unterschiedlich sind.
Sie sollten ein gutes Verständnis dafür haben, wofür die Hauptkonfigurationsdateien verwendet werden und wie sie miteinander interagieren. Wenn Sie über bestimmte Konfigurationsoptionen Bescheid wissen müssen, sind die bereitgestellten Dateien gut kommentiert und Apache bietet eine hervorragende Dokumentation.
Hoffentlich werden die Konfigurationsdateien jetzt nicht so einschüchternd sein, und Sie fühlen sich wohler experimentieren und modifizieren, um Ihre Bedürfnisse anzupassen.