Freigeben über


IIS 7 für Apache-Administratoren

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.

Apache-Modul IIS-Äquivalent Beschreibung Resource
mod_auth_anon AnonymousAuthentica- tionModule Führt die anonyme Authentifizierung aus, wenn keine andere Authentifizierungsmethode erfolgreich ist. Inetsrv\Authanon.dll
mod_auth BasicAuthentication-Module Führt die Standardauthentifizierung aus. Inetsrv\Authbas.dll
CertificateMapping-AuthenticationModule Führt die Zertifikatzuordnungsauthentifizierung mit Active Directory aus. Inetsrv\Authcert.dll
mod_auth_digest DigestAuthentication-Module Führt IIS-Digestauthentifizierung aus. Inetsrv\Authmd5.dll
Keine Entsprechung IISCertificateMapping-AuthenticationModule Führt die Zertifikatzuordnungsauthentifizierung mithilfe der IIS-Zertifikatkonfiguration aus. Inetsrv\Authmap.dll
Teilweise als Kernfunktion von Apache verfügbar RequestFilteringModule Führt URLScan-Aufgaben aus, z. B. konfigurieren zulässige Verben und Dateierweiterungen, Festlegen von Grenzwerten und Scannen nach fehlerhaften Zeichensequenzen. Inetsrv\Modrqflt.dll
mod_auth UrlAuthorizationModule Führt die URL-Autorisierung aus. Inetsrv\Urlauthz.dll
Nicht unterstützt WindowsAuthentication-Modul Führt die integrierte NTLM-Authentifizierung aus. Inetsrv\Authsspi.dll
mod_access IpRestrictionModule Schränkt IPv4-Adressen ein, die in der ipSecurity-Liste in der Konfiguration aufgeführt sind. Inetsrv\iprestr.dll

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.

Apache-Modul IIS-Äquivalent Beschreibung Resource
mod_cgi CgiModule Führt Prozesse der gemeinsamen Gatewayschnittstelle (Common Gateway Interface, CGI) aus, um die Antwortausgabe zu erstellen. Inetsrv\Cgi.dll
mod_dir DefaultDocumentModule Versucht, ein Standarddokument für Anforderungen an das übergeordnete Verzeichnis zurückzugeben. Inetsrv\Defdoc.dll
mod_autoindex DirectoryListingModule Listet den Inhalt eines Verzeichnisses auf. Inetsrv\dirlist.dll
Drittanbieter. IsapiModule Hosten von ISAPI-Erweiterungs-DLLs. Inetsrv\Isapi.dll
Nicht unterstützt IsapiFilterModule Unterstützt ISAPI-Filter-DLLs. Inetsrv\Filter.dll
Kernfeature: Optionsdirektive ServerSideIncludeModule Verarbeitet Code für serverseitiges Include. Inetsrv\Iis_ssi.dll
Kernfeature: EnableSendfile directove StaticFileModule Dient statischen Dateien. Inetsrv\Static.dll
mod_fcgid FastCgiModule Unterstützt FastCGI, eine leistungsstarke Alternative zu CGI. Inetsrv\iisfcgi.dll

Komprimierungsmodule

Zwei IIS-Module führen eine Komprimierung in der Anforderungsverarbeitungspipeline durch.

Apache-Modul IIS-Äquivalent Beschreibung Resource
mod_gzip DynamicCompression-Module Komprimiert Antworten und wendet GZIP-Komprimierungsübertragungscodierung auf Antworten an. Inetsrv\Compdyn.dll
mod_gzip StaticCompression-Modul Führt die Vorkomprimierung statischer Inhalte durch. Inetsrv\Compstat.dll

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.

Apache-Modul IIS-Äquivalent Beschreibung Resource
mod_cache und unterstützende Module FileCacheModule Stellt das Zwischenspeichern im Benutzermodus für Dateien und Dateihandles bereit. Inetsrv\Cachfile.dll
mod_cache und unterstützende Module HTTPCacheModule Bietet Kernelmodus- und Benutzermoduszwischenspeicherung in HTTP.sys. Inetsrv\Cachhttp.dll
mod_cache und unterstützende Module TokenCacheModule Stellt das Zwischenspeichern von Benutzernamen- und Tokenpaaren für Module bereit, die Windows-Benutzerprinzipale erzeugen. Inetsrv\Cachtokn.dll
mod_cache und unterstützende Module UriCacheModule Stellt das Zwischenspeichern von URL-Informationen im Benutzermodus bereit. Inetsrv\Cachuri.dll

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.

Apache-Modul IIS-Äquivalent Beschreibung Resource
mod_auth_anon AnonymousIdentification Verwaltet anonyme Bezeichner, die von Features verwendet werden, die anonyme Identifikation unterstützen, z. B. ASP.NET Profil. System.Web.Security.AnonymousIdentificationModule
mod_auth DefaultAuthentication Stellt sicher, dass ein Authentifizierungsobjekt im Kontext vorhanden ist. System.Web.Security.DefaultAuthenticationModule
mod_auth FileAuthorization Überprüft, ob ein Benutzer über die Berechtigung für den Zugriff auf die angeforderte Datei verfügt. System.Web.Security.FileAuthorizationModule
mod_auth FormsAuthentication Unterstützt die Formularauthentifizierung. System.Web.Security.FormsAuthenticationModule
mod_auth OutputCache Unterstützt die Ausgabezwischenspeicherung. System.Web.Caching.OutputCacheModule
mod_auth Profil Verwaltet Benutzerprofile mithilfe ASP.NET Profils, in dem Benutzereinstellungen in einer Datenquelle wie z. B. einer Datenbank gespeichert und abgerufen werden. System.Web.Profile.ProfileModule
Drittanbieter. RoleManager Verwaltet eine RolePrincipal-Instanz für den aktuellen Benutzer. System.Web.Security.RoleManagerModule
mod_perl Sitzung Unterstützt die Aufrechterhaltung des Sitzungszustands, der die Speicherung von Daten, die spezifisch für einen einzelnen Client innerhalb einer Anwendung auf dem Server sind, ermöglicht. System.Web.SessionState.SessionStateModule
Drittanbieter. UrlAuthorization Bestimmt, ob der aktuelle Benutzer zugriff auf die angeforderte URL hat, basierend auf dem Benutzernamen oder der Liste der Rollen, deren Mitglied der Benutzer ist. System.Web.Security.UrlAuthorizationModule
mod_rewrite UrlMappingsModule Unterstützt die Zuordnung einer echten URL zu einer benutzerfreundlicheren URL. System.Web.UrlMappingsModule
Nicht unterstützt WindowsAuthentication Legt die Identität des Benutzers für eine ASP.NET-Anwendung fest, wenn die Windows-Authentifizierung aktiviert ist. System.Web.Security.WindowsAuthenticationModule

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).