Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
von Tali Smith
Einführung
Apache Hypertext Transfer Protocol (HTTP)-Server und Internetinformationsdienste sind zwei der beliebtesten Webserver der Welt. Dieser Artikel enthält technische Informationen zu IIS für Benutzer, die mit Apache vertraut sind. Der Artikel vergleicht die Architektur-, Sicherheitsmodell- und Verwaltungsfunktionen von IIS 7 (und höher) mit denen von Apache und vergleicht außerdem gängige IIS- und Apache-Verwaltungsszenarien und -tools.
Features vergleichen
IIS bietet Administratoren mit einem modularen Design ähnlich dem des Apache-Webservers die Kontrolle über seine erweiterbare Architektur und intuitive grafische Benutzeroberfläche. Diagnosefunktionen, die in IIS integriert sind, reduzieren die Zeit, die zum Beheben von Problemen erforderlich ist, und minimieren Ausfallzeiten.
Modulare Architektur
Die Funktionalität von IIS ist in mehr als 44 separate Featuremodule unterteilt. Diese Module können während des Setups der Webserverrolle (IIS) über die Server-Manager-Konsole installiert werden. Die vorhandene Funktionalität kann weiter mit den enthaltenen Win32®- und Microsoft® .NET-Anwendungsprogrammierschnittstellen (APIs) erweitert werden, um neue Module zu erstellen. Während die IIS-Module Internet Server Application Programming Interface (ISAPI)-Filter und -Erweiterungen ersetzen, unterstützt IIS diese Filter und Erweiterungen vollständig.
Apache Web Server bietet eingeschränkte Unterstützung für SAPI-Erweiterungen (Microsoft® Speech API), unterstützt jedoch keine ISAPI-Filter. Es basiert auf einem Community-gesteuerten Projekt namens Apache Portable Runtime (APR), das zum Erstellen und Verwalten von Softwarebibliotheken verwendet wird, die eine vorhersehbare und konsistente Schnittstelle zu zugrunde liegenden plattformspezifischen Implementierungen bieten. Das APR stellt eine Reihe von APIs bereit, die dem zugrunde liegenden Betriebssystem zugeordnet sind, und ermöglicht Entwicklern somit plattformunabhängige Programme.
Webserversicherheit
Seit 2003 wurden vier Sicherheitsrisiken auf IIS 6.0 gemeldet, verglichen mit 23 für Apache 2.0.x während des gleichen Zeitraums,[1] gemäß dem Sicherheitsdienstanbieter Secunia. IIS basiert auf der sicheren Grundlage seines Vorgängers und bietet ein erweitertes Prozessmodell, das Anwendungen standardmäßig durch Sandkastenressourcen und -konfigurationen auf Anwendungsebene isoliert.
Wenn Sie eine minimale Umgebung installieren, indem Sie die Server Core-Installationsoption von Windows ServerÒ 2008 auswählen, wird der Bereich der Gefährdung der IIS-Installation weiter begrenzt. Server Core lässt grafische Dienste und die meisten Bibliotheken weg, wodurch der gesamte Speicherbedarf des Betriebssystems reduziert wird und gleichzeitig die Möglichkeit beibehalten wird, sowohl lokal verwaltet zu werden, als auch über das IIS Befehlszeilenprogramm iis Appcmd.exe und remote.
Verwaltungstools
Der erste Entwurf von Apache berücksichtigte nicht die Möglichkeit, eine grafische Schnittstelle für seine Verwaltungstools zu implementieren. Apache-Verwaltungsfunktionen werden durch Einträge direkt in Konfigurationsdateien oder über grafische Open Source-Verwaltungstools wie TKApache und NetLoony durchgeführt.
IIS bietet eine Reihe von Verwaltungstools; Die Verwaltung kann grafisch, über die Befehlszeile oder manuell durch Bearbeiten der Konfigurationsdatei erfolgen.
Diagnose und Problembehandlung
In Apache werden Fehler isoliert und durch fünf Protokolldateien diagnostiziert, von denen jeder manuell gelesen werden muss, um nach Mustern zu suchen, die auf ein bestimmtes Problem hinweisen.
IIS enthält zwei Mechanismen zur Unterstützung bei der Diagnose und Problembehandlung:
- Die Laufzeitstatus- und Kontroll-API stellt Echtzeitstatusinformationen zu Anwendungspools, Arbeitsprozessen, Websites, Anwendungsdomänen und sogar ausgeführten Anforderungen bereit. Diese COM-API (Component Object Model) wird über die IIS-Manager-Konsole, das neue Befehlszeilentool Appcmd.exe und die Windows-Verwaltungsinstrumentation (WMI) angezeigt. Diese Anwendungen bieten schnelle und einfache Statusprüfungen in jeder gewählten Verwaltungsumgebung.
- Detaillierte Ereignisablaufverfolgungsfunktionen verfolgen Ereignisse im gesamten Anforderungs- und Antwortpfad, sodass Entwickler und Administratoren eine Anforderung über die IIS-Verarbeitungspipeline nachverfolgen und wieder auf die Antwort zurückkommen können. Diese detaillierten Ablaufverfolgungsereignisse sammeln Informationen zum Anforderungspfad, von der Anforderung ausgelöste Fehler und die verstrichene Zeit an allen Punkten.
IIS bietet außerdem eine detaillierte und umsetzbare Bibliothek mit Fehlermeldungen. Diese Bibliothek ersetzt die herkömmlichen Terse Fehlercodes durch detaillierte Informationen zur Anforderung, die mögliche Ursache des Fehlers und vorgeschlagene Schritte zur Behebung des Problems. IIS sendet detaillierte Fehlerinformationen an den Browser und andere Remoteclients.
Webanwendungsunterstützung
IIS bietet Tools, mit denen Organisationen alle ihre Webanwendungen auf einer einzigen Plattform verwalten können, ohne dass zwei oder mehr unabhängige Plattformen verwaltet werden müssen, die höhere Infrastrukturkosten verursachen.
FastCGI in IIS unterstützt die hochleistungsreiche Version der Common Gateway Interface (CGI). FastCGI überwindet die Leistungsprobleme von Standard-CGIs, indem dauerhafte Prozesse erstellt werden, die für mehrere Anforderungen wiederverwendet werden können, anstatt einen neuen Prozess für jede Anforderung zu erstellen, der dann verworfen wird, wenn die Anforderung ausgefüllt wurde. FastCGI ermöglicht auch die Remoteausführung von Anwendungen, wodurch die Lastverteilung verbessert wird.
IIS arbeitet auch mit Microsoft .NET Framework, Version 1.1 und höher. Durch die Unterstützung von klassischem ASP, Microsoft® ASP.NET und PHP bietet IIS Organisationen die Flexibilität, Anwendungen in der Sprache ihrer Wahl zu schreiben und Anwendungen auf der Plattform ihrer Wahl zu hosten.
Erweiterbarkeitsmodell für Anpassungen
Entwickler können IIS über den Kernserver-API-Satz erweitern, mit dem sie Module sowohl in systemeigenem Code (z. B. C/C++) als auch mithilfe von Sprachen (z. B. C# und Microsoft® Visual Basic®) erstellen können, die .NET Framework verwenden. IIS ermöglicht außerdem die Erweiterbarkeit für Konfigurations-, Skript-, Ereignisprotokollierungs- und Verwaltungstool-Featuresätze.
Erweiterungen stehen kostenlos zum Download für x86- und x64-Plattformen zur Verfügung. Die Erweiterungen umfassen eine Reihe von Aufgaben in der Bereitstellung, Verwaltung, Anforderungsverarbeitung, Sicherheit, Inhaltsveröffentlichung und Mediendienst. Die verfügbaren IIS-Erweiterungen finden Sie unter: IIS-Erweiterungen.
FTP-Veröffentlichungsdienst für IIS 7 und höher
DER FTP-Veröffentlichungsdienst für IIS (FTP 7) bietet viele erweiterte Funktionen gegenüber früheren Versionen des IIS-FTP-Servers:
- Engere Integration in IIS über eine neue Verwaltungsbenutzeroberfläche (UI) und einen Konfigurationsspeicher basierend auf dem .NET XML-basierten *.CONFIG-Format.
- Unterstützung für das File Transfer Protocol (FTP) über Secure Sockets Layer (SSL) und für die Verwendung von Nicht-WindowsÒ-Konten für die Authentifizierung. Der neue FTP-Dienst unterstützt auch andere Internetverbesserungen wie UTF8 und IPv6.
- Verbesserungen des gemeinsamen Hostings durch vollständige Integration in IIS. Dadurch kann FTP 7 FTP- und Webinhalte von derselben Website hosten, indem einfach eine FTP-Bindung zu einer vorhandenen Website hinzugefügt wird. Außerdem unterstützt der FTP-Dienst jetzt virtuelle Hostnamen, so dass Sie mehrere FTP-Sites unter der gleichen IP-Adresse hosten können.
- Verbesserte Protokollierungs- und Unterstützungsfunktionen, einschließlich erweiterter Protokollierung für alle FTP-bezogenen Datenverkehr, eindeutige Nachverfolgung für FTP-Sitzungen, FTP-Unterstatus und zusätzliche Detailfelder in FTP-Protokollen.
Integrierte Anforderungspipeline
In früheren Versionen von IIS wurde ASP.NET als IIS ISAPI-Erweiterung implementiert, und Anforderungen an Nicht-ASP.NET Inhalte, z. B. ASP-Seiten oder statische Dateien, waren für ASP.NET nicht sichtbar.
In IIS bietet das Layout der Anforderungspipeline mehr Möglichkeiten, die Art und Weise zu beeinflussen, in der eine Anforderung verarbeitet wird. IIS verarbeitet eine Anforderung an einen beliebigen Inhaltstyp, der Dienste ermöglicht, die von ASP.NET Modulen bereitgestellt werden, z. B. Formularauthentifizierung oder Ausgabecache, die für Anforderungen an ASP-Seiten, PHP-Seiten oder statische Dateien verwendet werden.
IIS 7 und höher Konfiguration und Verwaltung
In Apache beginnt die Konfiguration mit einem Direktiveneintrag in der Datei "Httpd.config".
Diese Methode ähnelt der IIS-Konfiguration, in der die meisten Einstellungen entweder lokal in der Datei "Web.config" oder global in der Datei "ApplicationHost.config" konfiguriert werden können. IIS stellt einige Methoden zum Bearbeiten der CONFIG-Dateien bereit. Diese Methoden umfassen:
- Grafisches Bearbeiten über die IIS-Manager-Konsole.
- Bearbeiten von der Eingabeaufforderung mithilfe von Appcmd.exe zusammen mit dem Set config/commit-Argument /.
- Bearbeiten in einem Windows-Verwaltungsinstrumentationsskript mithilfe der Anwendungsklasse.
- Manuelles Bearbeiten der Konfigurationsdateien, die auf einem stark typierten Schema basieren, das in Klartext-XML geschrieben wurde. Microsoft® Visual Web Developer 2005 Express Edition kann verwendet werden, um die IIS-Konfigurationsdateien in einer ansprechenden Code-Editor-Umgebung zu bearbeiten.
Die vollständigen Nutzungsoptionen von Appcmd.exe finden Sie hier.
Verwenden von Modulen zum Steuern und Anpassen von IIS
Modul in IIS steuern und seine Funktionalität anpassen, führen zu größerer Flexibilität und Effizienz der Serverplattform. Standardmäßig sind diese Module DLL-Dateien (Dynamic Link Library) im %WINDIR%\System32\inetsrv\
Ordner gespeichert. Sie können wie folgt in zwei Typen unterteilt werden.
- Nativ. Ein systemeigenes Modul hat uneingeschränkten Zugriff auf jede Ressource, die für den Serverarbeitsprozess verfügbar ist, genau wie ein ISAPI-Filter oder eine Erweiterung in früheren Versionen.
- Verwaltet. Verwaltete Module können für jeden Standort oder jede Anwendung separat konfiguriert werden. Sie werden nur zur Verarbeitung geladen, wenn sie von der jeweiligen Website oder Anwendung benötigt werden.
HTTP-Module
Mehrere IIS-Module führen aufgabenspezifisch für HTTP in der Anforderungsverarbeitungspipeline aus. Dazu gehören Module zum Beantworten von Informationen und Anfragen, die in Clientheadern gesendet werden, HTTP-Fehler zurückzugeben und Anforderungen umzuleiten.
Apache-Modul | IIS-Äquivalent | Beschreibung | Resource |
---|---|---|---|
Kernfeature: ErrorDocument-Direktive | CustomErrorModule | Sendet Standard- und konfigurierte HTTP-Fehlermeldungen, wenn ein Fehlerstatuscode für eine Antwort festgelegt wird. | Inetsrv\Custerr.dll |
mod_alias | HttpRedirectionModule | Unterstützt konfigurierbare Umleitung für HTTP-Anforderungen. | Inetsrv\Redirect.dll |
mod_headers | ProtocolSupportModule | Führt protokollbezogene Aktionen aus, z. B. Festlegen der Antwort und Umleitung von Headern basierend auf der Konfiguration. | Inetsrv\Protsup.dll |
Sicherheitsmodule
Mehrere IIS-Module führen Sicherheitsaufgaben in der Anforderungsverarbeitungspipeline aus. Darüber hinaus gibt es separate Module für jedes Authentifizierungsschema, wodurch die Auswahl von Modulen für die auf dem Server gewünschten Authentifizierungstypen ermöglicht wird. Andere Module führen URL-Autorisierungs- und Filteranforderungen durch.
Inhaltsmodule
Mehrere IIS-Module führen Aufgaben im Zusammenhang mit Inhalten in der Anforderungsverarbeitungspipeline aus. Inhaltsmodule verarbeiten Anforderungen für statische Dateien, geben eine Standardseite zurück, wenn ein Client eine Ressource in einer Anforderung nicht angeben, den Inhalt eines Verzeichnisses auflisten und vieles mehr.
Komprimierungsmodule
Zwei IIS-Module führen eine Komprimierung in der Anforderungsverarbeitungspipeline durch.
Zwischenspeichern von Modulen
Mehrere IIS-Module führen Aufgaben im Zusammenhang mit der Zwischenspeicherung in der Anforderungsverarbeitungspipeline aus. Das Zwischenspeichern verbessert die Leistung von Websites und Webanwendungen, indem verarbeitete Informationen wie Webseiten, im Arbeitsspeicher auf dem Server gespeichert und diese Informationen dann in nachfolgenden Anforderungen für dieselbe Ressource wiederverwenden.
Protokollierung und Diagnose Module
Mehrere IIS-Module führen Aufgaben im Zusammenhang mit der Protokollierung und Diagnose in der Anforderungsverarbeitungspipeline aus. Die Protokollierungsmodule unterstützen das Laden benutzerdefinierter Module und das Übergeben von Informationen an HTTP.sys. Die Diagnosemodule verfolgen und melden Ereignisse während der Anforderungsverarbeitung.
Apache-Modul | IIS-Äquivalent | Beschreibung | Resource |
---|---|---|---|
mod_log_config | CustomLoggingModule | Lädt benutzerdefinierte Protokollierungsmodule. | Inetsrv\Logcust.dll |
Nicht unterstützt | FailedRequests-TracingModule | Unterstützt das Feature "Fehleranforderungsablaufverfolgung". | Inetsrv\Iisfreb.dll |
mod_log_config | HttpLoggingModule | Übergibt Informationen und Verarbeitungsstatus an HTTP.sys für die Protokollierung. | Inetsrv\Loghttp.dll |
mod_dtrace | RequestMonitorModule | Verfolgt Anforderungen, die derzeit in Arbeitsprozessen ausgeführt werden, und meldet Informationen mit der Runtime Status and Control Application Programming Interface. | Inetsrv\Iisreqs.dll |
mod_log_config | TracingModule | Meldet Ereignisse der Ereignisablaufverfolgung für Windows (ETW). | Inetsrv\Iisetw.dll |
Verwaltete Supportmodule
Zwei IIS-Module unterstützen die verwaltete Integration in die IIS-Anforderungsverarbeitungspipeline.
Apache-Modul | IIS-Äquivalent | Beschreibung | Resource |
---|---|---|---|
Nicht unterstützt | ManagedEngine | Stellt die Integration von Verwalteten Codemodulen in die IIS-Anforderungsverarbeitungspipeline bereit. | Microsoft.NET\Framework\v2.0.50727\webengine.dll |
Drittanbieter. | ConfigurationValidationModule | Überprüft Konfigurationsprobleme (z. B. wenn eine Anwendung im integrierten Modus ausgeführt wird, aber Handler oder Module im Abschnitt "system.web" deklariert sind). | Inetsrv\validcfg.dll |
Verwaltete Module
Zusätzlich zu systemeigenen Modulen ermöglicht IIS die Verwendung von Modulen mit verwaltetem Code, um die IIS-Funktionalität zu erweitern. Einige der verwalteten Module, z. B. UrlAuthorization, weisen ein natives Modul als Entsprechung auf, das eine native Alternative zum verwalteten Modul bereitstellt.
Verteiltes Konfigurationsmodell
Das neue Konfigurationssystem in IIS speichert Konfigurationsdateien wie HTACCESS-Dateien in Apache zwischen, verbraucht aber deutlich weniger Arbeitsspeicher. Darüber hinaus gibt es verschiedene Möglichkeiten, IIS so zu konfigurieren, dass er entweder globale oder genauere Konfigurationsänderungen nutzt.
IIS verwendet ein Konfigurationsschema, das ASP.NET Integration bereitstellt, einschließlich freigegebener Konfiguration und HTTP-Laufzeitunterstützung. Das XML-basierte Konfigurationsmodell verwendet Konfigurationstextdateien, die Konfigurationseinstellungen enthalten und in separaten XML-Dateien in einem Ordner gespeichert werden können.
IIS verwendet drei HAUPT-XML-Dateien, die Serverbereitstellungen verwalten:
- Machine.config enthält .NET Framework-Einstellungen für den Server. Diese Einstellungen werden von allen anderen .NET Framework-Konfigurationsdateien geerbt und können standardmäßig unter
%windir%\Microsoft.net\Framework\<*framework\_version*>\Config\Machine.config
. - Die Datei ApplicationHost.config enthält Einstellungen für IIS und deren Dienste. Standardmäßig befindet sie sich unter
%windir%\System32\inetsrv\config\applicationHost.config
. - Die Datei "Root Web.config" enthält die globalen Einstellungen für ASP.NET Webanwendungen und befindet sich unter
%windir%\Microsoft.NET\Framework\<*framework\_version*>\Config\Root Web.config
. Diese Datei gibt jeder Anwendung eine Web.config-Datei, die globale Einstellungen außer Kraft setzt, und ermöglicht außerdem, dass die IIS-Konfigurationseinstellungen in diesen Web.config-Dateien gespeichert werden, wodurch das Kopieren von Anwendungen auf mehreren Webservern viel einfacher wird und kostspielige und fehleranfällige Replikation, manuelle Synchronisierung und zusätzliche Konfigurationsaufgaben vermieden wird.
Verwaltung mithilfe von IIS 7 und höher
IIS kann verwendet werden, um dieselben Verwaltungsaufgaben auszuführen, die auf Apache ausgeführt werden.
Anpassen von Fehlermeldungen
Für jeden standardmäßigen HTTP-Fehler 403, 404 und 504 wird eine Nachricht an den Browser zurückgegeben. Mit unterschiedlichen Webservern können Administratoren eine Standardfehlermeldung, eine bestimmte Webseite oder eine Datei als Webseite für jeden Fehler zurückgeben.
- In Apache erfolgt das Anpassen von Fehlermeldungen mithilfe der HTACCESS-Datei, die Administratoren verwenden können, um das Serververhalten zu bearbeiten und benutzerdefinierte Serverfehlermeldungen zu erstellen. Beispiele für solche Fehler sind der Fehler "404 Nicht gefunden", der angezeigt wird, wenn ein Link unterbrochen wird, und der "500 Interner Serverfehler", der angezeigt wird, wenn ein Skript fehlschlägt. Die HTACCESS-Datei weist den Server an, eine spezielle Seite im Falle eines Fehlers anzuzeigen.
- MIT IIS können Administratoren auch spezielle Seiten anstelle von Standardseiten für Websitefehler zurückgeben. Statt beispielsweise die Meldung "404 Datei nicht gefunden" anzuzeigen, wird möglicherweise eine Meldung mit optionalen Links zusammen mit dem Firmenkopf und einer apologetischen Notiz angezeigt.
Standardmäßig gibt IIS zwei Arten von Fehlern zurück, wenn ein Problem auftritt. Der erste Typ ist der standardmäßige benutzerdefinierte Fehler, einschließlich einer Terse Fehlerbeschreibung und eines Fehlercodes. Der zweite Fehlertyp ist ein detaillierter Fehler, der standardmäßig nur Anforderungen von localhost zurückgibt. IIS kann so konfiguriert werden, dass detaillierte Fehler immer zurückgegeben werden, insbesondere wenn die Anwendung im Debugmodus ausgeführt werden muss, oder um nie detaillierte Fehler zurückzugeben und stattdessen immer benutzerdefinierte Fehler zurückzugeben.
URL-Umschreibung
Das Umschreiben von URLs ist eine Möglichkeit zum Ändern der Darstellung einer Web-URL. Webanwendungsbenutzer bevorzugen kurze, übersichtliche URLs anstelle von unformatierten Abfragezeichenfolgenparametern. Eine präzise URL ist leicht zu merken und weniger zeitaufwendig, um einzugeben. Wenn die URL eindeutig auf den Inhalt der Seite bezogen werden kann, sind Fehler weniger wahrscheinlich.
- Für das Umschreiben von URLs enthält Apache ein bekanntes Modul namens mod_rewrite. Dieses Modul stellt ein regelbasiertes Rewriting-Modul bereit, um angeforderte URLs im Handumdrehen neu zu schreiben. Das mod_rewrite Modul ist in der Datei Apache.conf aktiviert, indem die Datei #entfernt und Apache neu gestartet wird. Regeln neu schreiben können dann in der HTACCESS-Datei innerhalb eines bestimmten Verzeichnisses definiert werden.
- IIS bietet jetzt ein URL-Rewriting-Modul (siehe URL Rewrite-Modul).
Webcaching
Webcaching ist der temporäre Speicher von Webobjekten, z. B. HTML-Dokumenten, für den späteren Abruf. Es gibt drei erhebliche Vorteile beim Webcaching: Geringerer Bandbreitenverbrauch, da weniger Anforderungen und Antworten über das Netzwerk gehen müssen, verringerte Serverlast, da ein Server weniger Anforderungen zu verarbeiten hat und die Latenz verringert wird, da Antworten für zwischengespeicherte Anforderungen sofort verfügbar sind und näher am Client bereitgestellt werden. Gemeinsam machen diese Vorteile das Web kostengünstiger und verbessern die Leistung.
Zwischenspeichern (Caching) kann von der Clientanwendung ausgeführt werden und ist in die meisten Webbrowser integriert. Eine Reihe von Produkten erweitern oder ersetzen integrierte Caches durch Systeme mit größerem Speicher, mehr Features oder einer besseren Leistung. Zwischenspeichern kann auch zwischen dem Client und dem Server als Teil eines Proxys implementiert werden. Proxycaches befinden sich häufig in der Nähe von Netzwerkgateways, um die Bandbreite zu reduzieren, die über teure dedizierte Internetverbindungen erforderlich ist. Schließlich können Caches direkt vor einem bestimmten Server platziert werden, um die Anzahl der Anforderungen zu verringern, die der Server verarbeiten muss.
- In Apache 2.0 und 2.2 basiert die Zwischenspeicherung normalerweise auf drei Module: mod_cache, mod_disk_cache und mod_mem_cache. Die Befehle zum Konfigurieren der Zwischenspeicherung müssen in den Hauptserverkonfigurationsdateien definiert werden, nicht in HTACCESS-Dateien. Zwischenspeicherungstechniken funktionieren nicht ohne Serveradministratorzugriff und eignen sich am besten für dynamische Inhalte, die zwischengespeichert und als statischer Inhalt bereitgestellt werden sollten. So erzwingt Apache das Zwischenspeichern dynamischer Inhalte für einen bestimmten Zeitraum, der andernfalls jedes Mal dynamisch bedient wird, bevor die Datenbank erneut getroffen wird.
- Der IIS-Ausgabecache ist ein neues Feature, mit dem ganze Antworten im Arbeitsspeicher, auch aus dynamischen Inhalten, zwischengespeichert werden können. Websitebesitzer und Entwickler können den Ausgabecache so konfigurieren, dass separate Kopien von Antworten basierend auf Abfragezeichenfolgenwerten zwischengespeichert werden können.
Der Ausgabecache ist auch in den HTTP.sys Kernelcache integriert, der bei schneller Leistung hilft. DieKernelzwischenspeicherung ist standardmäßig entsperrt. Entwickler können dieses Feature nutzen, indem Sie Zwischenspeicherungsprofile in ihren Anwendungen konfigurieren. Ein Befehlszeilentool kann ausgeführt werden, um den Inhalt im HTTP.sys-Cache anzuzeigen. Eine Regel basierend auf Antwortheadern kann so konfiguriert werden, dass verschiedene Versionen von Inhalten auf einer Website oder Anwendung zwischengespeichert werden.
Webausgabekomprimierung
Obwohl die Webseitenkomprimierung keine neue Technologie ist, ist sie vor kurzem aufgrund der fast sofortigen Rendite (ROI) von IT-Administratoren und Managern beliebt geworden.
- Die in Apache verfügbare Webausgabekomprimierungslösung ist mod_gzip, mit der konfigurierte Dateitypen nach der Verarbeitung durch die anderen Module von Apache und vor dem Senden an den Client mit GZIP komprimiert werden. Wenn eine Anforderung von einem Client empfangen wird, bestimmt Apache, ob mod_gzip aufgerufen werden soll, indem angegeben wird, ob der HTTP-Anforderungsheader "Accept-Encoding" gesendet wurde. Wenn der Client den Header sendet, komprimiert mod_gzip die Ausgabe aller konfigurierten Dateitypen, wenn sie an den Client gesendet werden.
- IIS hat verbesserte und vereinfachte Unterstützung für die GZIP-Codierung, die die sofort einsatzbereite Ausführung der Webkomprimierung ermöglicht hat. Die Komprimierung ist in der Datei ApplicationHost.config unter
C:\Windows\System32\inetsrv\config\applicationhost.config
konfiguriert. Das Komprimierungsmodul bietet IIS die Möglichkeit, komprimierte Antworten auf komprimierte Clients zu bedienen. Clients, die komprimierte Antworten akzeptieren können, senden einen Accept-Encoding-Header, der die Komprimierungsschemas angibt, die sie verarbeiten können. Wenn IIS die Antwort mithilfe eines dieser Komprimierungsschemas komprimieren kann, sendet sie eine komprimierte Antwort mit einem Antwortheader der Inhaltscodierung, der das Schema angibt, das zum Komprimieren der Antwort verwendet wird.
Diagnose und Problembehandlung
Um einen Webserver effektiv zu verwalten, ist es notwendig, Feedback zur Aktivität und Leistung des Servers und zu Problemen zu erhalten, die auftreten können.
Apache
Der Apache-HTTP-Server bietet umfassende und flexible Protokollierungsfunktionen:
Fehlerprotokolle. Das Serverfehlerprotokoll, dessen Name und Speicherort durch die ErrorLog-Direktive festgelegt wird, ist die wichtigste Protokolldatei. Hier sendet Apache Httpd Diagnoseinformationen und zeichnet alle Fehler auf, die bei der Verarbeitung von Anforderungen auftreten. Es ist der erste Ort, an dem ein Problem beim Starten oder Ausführen des Servers auftritt, da es häufig Details darüber enthält, was schief gelaufen ist und wie sie behoben werden kann.
Eine Vielzahl verschiedener Meldungen kann im Fehlerprotokoll angezeigt werden. Das Fehlerprotokoll enthält auch die Debugausgabe von CGI-Skripts. Alle Informationen, die von einem CGI-Skript in stderr geschrieben wurden, werden direkt in das Fehlerprotokoll kopiert.
Das Anpassen des Fehlerprotokolls durch Hinzufügen oder Entfernen von Informationen ist nicht möglich. Fehlerprotokolleinträge, die mit bestimmten Anforderungen zu tun haben, weisen jedoch entsprechende Einträge im Zugriffsprotokoll auf. Das Anpassen des Zugriffsprotokolls zur Bereitstellung weiterer Informationen ist ebenfalls möglich.
Zugriffsprotokolle. In Apache zeichnet der Serverzugriffsprotokoll alle vom Server verarbeiteten Anforderungen auf. Die CustomLog-Direktive steuert den Speicherort und den Inhalt des Zugriffsprotokolls. Die LogFormat-Direktive kann verwendet werden, um die Auswahl des Inhalts der Protokolle zu vereinfachen. Verschiedene Versionen von Apache Httpd verwenden verschiedene Module und Direktiven, um die Zugriffsprotokollierung zu steuern, einschließlich mod_log_config, mod_log_referer, mod_log_agent und der
TransferLog
Direktive.Skriptprotokolle. Zur Unterstützung beim Debuggen ermöglicht ihnen die ScriptLog-Direktive das Aufzeichnen der Eingabe in und ausgabe von CGI-Skripts. Dies sollte nur während des Tests und nicht für Liveserver verwendet werden.
Schreiben Sie Protokolle neu. Bei Verwendung der leistungsstarken und komplexen Features von mod_rewrite ist es fast immer notwendig, das RewriteLog zum Debuggen zu verwenden. Diese Protokolldatei erzeugt eine detaillierte Analyse der Transformation von Anforderungen durch das Umschreiben des Moduls. Die RewriteLogLevel-Direktive steuert die Detailebene.
IIS 7 und höher
IIS enthält wichtige Verbesserungen, die bei der Diagnose und Problembehandlung hilfreich sind, damit Entwickler und Administratoren einfacher mit fehlerhaften Websites und Anwendungen arbeiten können. Es folgen Verbesserungen bei Diagnose- und Problembehandlungstools in IIS:
- Ermöglicht dem Administrator, alle Aktuell auf dem Server ausgeführten Anforderungen anzuzeigen.
- Enthält detaillierte Fehlerprotokolle für den lokalen Server.
- Stellt ein detailliertes Ablaufverfolgungsprotokoll bereit, mit dem Probleme nachverfolgt und detaillierte Informationen zu Ablaufverfolgungsereignissen erhalten können.
- Enthält neue Laufzeitstatus- und Kontroll-API (RSCA) für Echtzeitstatusinformationen zu Anwendungspools, Arbeitsprozessen, Websites, Anwendungsdomänen und ausgeführten Anforderungen (Bereitstellung von Echtzeitstatusinformationen über eine systemeigene Component Object Model [COM]-API und Appcmd.exe).
- Kann so konfiguriert werden, dass vollständige Ablaufverfolgungsprotokolle automatisch erfasst werden.
- Enthält Tools, mit denen IT-Mitarbeiter Probleme und Problembehandlungen im IIS-Manager finden können.
Schützen des Webservers
Apache
Apache-Administratoren verwenden häufig Folgendes, um ihre Konfigurationen zu sichern:
Wenden Sie Sicherheitspatches an.
Blenden Sie die Apache-Versionsnummer und andere vertrauliche Informationen aus.
Stellen Sie sicher, dass Apache unter einem eigenen Benutzerkonto und einer eigenen Gruppe ausgeführt wird.
Stellen Sie sicher, dass Dateien außerhalb des Webstamms nicht bereitgestellt werden.
Deaktivieren Sie das Verzeichnisbrowsen.
Deaktivieren Sie die CGI-Ausführung.
Führen Sie mod_security aus, ein Modul, das geschrieben wurde, um mehrere verschiedene Sicherheitskonfigurationen anzuwenden:
- Filtern (einfacher und regulärer Ausdruck basiert)
- Codierungsüberprüfung (URL und Unicode)
- Überwachung
- Uploadspeicherbeschränkungen
- Serveridentitätsmaske usw.
IIS 7 und höher
Die Anforderungsfilterung ist in IIS integriert. Details und ein vollständiger Optionssatz für das Modul finden Sie hier.
Dynamische IP-Einschränkungen für IIS ist ein Modul, das Schutz vor Denial-of-Service- und Brute-Force-Angriffen auf Webserver und Websites bietet. Ein solcher Schutz wird durch vorübergehendes Blockieren von IP-Adressen der HTTP-Clients bereitgestellt, die ungewöhnlich hohe Anzahl gleichzeitiger Anforderungen machen oder eine große Anzahl von Anforderungen über einen kurzen Zeitraum durchführen. Detaillierte Anweisungen zur Installation und Verwendung dieses Moduls finden Sie hier.
Hinweis
Dieser Artikel basiert auf dem Whitepaper IIS 7.0 für Apache-Administratoren (https://download.microsoft.com/download/2/D/8/2D863347-3AFF-48A6-9FCF-EC6554C18DCF/IIS_7_for_Apache.doc
).