Apache/HTTP/Windows/Anpassen: Unterschied zwischen den Versionen
Zeile 31: | Zeile 31: | ||
* Dies ist die maximale Anzahl von Verbindungen, die der Server auf einmal verarbeiten kann | * Dies ist die maximale Anzahl von Verbindungen, die der Server auf einmal verarbeiten kann | ||
* Stellen Sie also sicher, dass Sie diese Zahl hoch genug für Ihre Website einstellen, wenn Sie viele Zugriffe erhalten | * Stellen Sie also sicher, dass Sie diese Zahl hoch genug für Ihre Website einstellen, wenn Sie viele Zugriffe erhalten | ||
* | Standardwert | ||
* ist <tt>ThreadsPerChild 150</tt>, aber dieser Wert muss angepasst werden, um die größte zu erwartende Anzahl von gleichzeitigen Verbindungen zu berücksichtigen | |||
|} | |} | ||
Version vom 5. November 2024, 01:53 Uhr
Apache für Windows anpassen
Konfiguration
- Apache wird über die Dateien im Unterverzeichnis conf konfiguriert
- Es handelt sich dabei um dieselben Dateien, die auch zur Konfiguration der Unix-Version verwendet werden, aber für den Apache unter Windows gibt es ein paar andere Direktiven
- Im Direktiven-Indexfinden Sie alle verfügbaren Direktiven
Standardkonfiguration
- Die Standardkonfiguration der Quelldistribution erwartet, dass der Server in \Apache24 installiert wird
- Dies kann bei der Kompilierung angepasst werden, aber es ist wichtig, dass das ServerRoot in httpd.conf mit dem tatsächlichen Installationsstamm übereinstimmt
- Binärdistributionen können entweder das Standard-Installationsverzeichnis oder das Gesamtlayout der ursprünglichen Konfiguration anpassen
Hauptunterschiede
Hauptunterschiede beim Apache für Windows
MPM
- Da der Apache für Windows multithreaded ist, verwendet er nicht wie der Apache unter Unix für jede Anfrage einen eigenen Prozess, sondern es laufen in der Regel nur zwei Apache-Prozesse: ein Elternprozess und ein Kindprozess, der die Anfragen bearbeitet
- Innerhalb des untergeordneten Prozesses wird jede Anfrage von einem eigenen Thread bearbeitet
Prozessmanagement
Direktiven für das Prozessmanagement
MaxConnectionsPerChild | Verbindungen eins Kindprozess
Verwenden Sie die Standardeinstellung MaxConnectionsPerChild 0
|
ThreadsPerChild | Threads pro Child
Standardwert
|
- Warnung
- Die Serverkonfigurationsdatei wird neu eingelesen, wenn ein neuer Kindprozess gestartet wird
- Wenn Sie httpd.conf geändert haben, startet der neue Kindprozess möglicherweise nicht oder Sie erhalten unerwartete Ergebnisse
Dateinamen
Direktiven, die Dateinamen als Argumente akzeptieren, müssen Windows-Dateinamen anstelle von Unix-Dateinamen verwenden
- Da der Apache jedoch Backslashes als "Escape-Zeichen"-Sequenz interpretieren kann, sollten Sie in Pfadnamen stets Schrägstriche und keine Backslashes verwenden
Groß- und Kleinschreibung
Während bei Dateinamen unter Windows in der Regel nicht zwischen Groß- und Kleinschreibung unterschieden wird, wird bei URLs intern immer noch zwischen Groß- und Kleinschreibung unterschieden, bevor sie auf das Dateisystem abgebildet werden
- Die Direktiven <Location>, Alias und ProxyPass verwenden beispielsweise alle Argumente unter Berücksichtigung der Groß- und Kleinschreibung
- Daher ist es besonders wichtig, die <Directory>-Direktive zu verwenden, wenn der Zugriff auf Inhalte im Dateisystem eingeschränkt werden soll, da diese Direktive für alle Inhalte in einem Verzeichnis gilt, unabhängig davon, wie auf sie zugegriffen wird
Wenn Sie sicherstellen wollen, dass in URLs nur Kleinbuchstaben verwendet werden, können Sie etwas wie folgt verwenden
RewriteEngine On
RewriteMap lowercase int:tolower
RewriteCond "%{REQUEST_URI}" "[A-Z]"
RewriteRule "(.*)" "${lowercase:$1}" [R,L]
Lese-/Schreibrechte
Im laufenden Betrieb benötigt der Apache nur Schreibzugriff auf das Verzeichnis logs und einen eventuell konfigurierten Cache-Verzeichnisbaum
- Aufgrund der Groß-/Kleinschreibung und der kurzen Namen im 8.3-Format muss der Apache alle angegebenen Pfadnamen überprüfen
- Das bedeutet, dass jedes Verzeichnis, das der Apache auswertet, vom Stammverzeichnis bis zum Verzeichnisblatt, Lese-, Listen- und Traverse-Verzeichnisrechte haben muss
- Wenn Apache2.4 unter C:\Programme installiert ist, müssen das Stammverzeichnis, die Programme und Apache2.4 für den Apache sichtbar sein
Module laden
Apache für Windows ermöglicht, Module zur Laufzeit zu laden, ohne den Server neu zu kompilieren
- Wenn der Apache normal kompiliert wird, installiert er eine Reihe von optionalen Modulen im Verzeichnis \Apache .4\modules
- Um diese oder andere Module zu aktivieren, muss die LoadModule-Anweisungverwendet werden
Status-Modul
Um zum Beispiel das Status-Modul zu aktivieren, verwenden Sie die folgende Anweisung (zusätzlich zu den status-aktivierenden Direktiven in access.conf)
LoadModule mod_status "modules/mod_status.so"
Informationen zur Erstellung von ladbaren Modulen sind ebenfalls verfügbar
ISAPI-Erweiterungen
- Apache kann auch ISAPI-Erweiterungen (Internet Server Application Programming Interface) laden, wie sie von Microsoft IIS und anderen Windows-Servern verwendet werden. Weitere Informationen sind verfügbar
- Beachten Sie, dass der Apache keineISAPI-Filter laden kann, und dass ISAPI-Handler mit einigen Microsoft-Funktionserweiterungen nicht funktionieren
CGI-Skripte
- Bei der Ausführung von CGI-Skripten ist die Methode, die der Apache verwendet, um den Interpreter für das Skript zu finden, mit der Direktive ScriptInterpreterSourcekonfigurierbar
- Da es unter Windows oft schwierig ist, Dateien mit Namen wie .htaccess zu verwalten, kann es nützlich sein, den Namen dieser Konfigurationsdatei pro Verzeichnis mit der Direktive AccessFilenamezu ändern
Windows-Ereignisprotokoll
- Fehler während des Apache-Starts
Fehler während des Apache-Starts werden in das Windows-Ereignisprotokoll eingetragen, wenn der Apache unter Windows NT läuft
- Dieser Mechanismus dient als Backup für Situationen, in denen der Apache noch nicht bereit ist, die Datei error.log zu verwenden
Sie können das Windows-Ereignisprotokoll mithilfe der Ereignisanzeige überprüfen
- z. B. Start - Einstellungen - Systemsteuerung - Verwaltung - Ereignisanzeige