
Wir haben IIS7-Server, die hinter einem Nginx-Reverse-Proxy sitzen.
Der Reverse-Proxy sendet den Standard-Header „HTTP_X_FORWARDED_FOR“ mit der IP-Adresse des Besuchers, aber die IIS7-Protokollierung protokolliert nur die IP-Adresse des Nginx-Servers (was sinnvoll ist, aber nicht das, was ich will).
Wie kann ich IIS7 anweisen, stattdessen (oder zusätzlich) den Header „HTTP_X_FORWARDED_FOR“ zu protokollieren?
(Hinweis: Ich bin ein Linux-Administrator, kein Windows-Administrator, daher bin ich für ausführliche Anweisungen und Links sehr dankbar.)
Antwort1
Dies ist nicht in IIS integriert, aber Sie können ein Modul installieren, das diese Funktion ausführt. Es heißt ARR-Helper, funktioniert aber mit jedem Proxy vor IIS:
Antwort2
Es gibt jetzt ein IIS7-Modul, mit dem Sie benutzerdefinierte Header protokollieren können.
Wie man: http://learn.iis.net/page.aspx/579/advanced-logging-for-iis-70---custom-logging/
Antwort3
Obwohl die Frage mit „iis-7“ gekennzeichnet ist, ist dies der oberste Treffer bei der Suche nach X-Forwarded-For und IIS. Daher dachte ich, ich mache weiter und stelle diese Informationen für IIS 8.5 bereit.
IIS 8.5 und höher
IIS 8.5 führte dieErweiterte ProtokollierungFunktion, mit der der Administrator problemlos HTTP-Anforderungsheader wie X-Forwarded-For protokollieren kann. Diese Antwort wurde von der verlinkten Seite übernommen.
OffenIIS-Manager.
Wählen Sie die Site oder den Server imAnschlüsseund doppelklicken Sie dann aufProtokollierung. Beachten Sie, dass die erweiterte Protokollierung nur für die Protokollierung auf Site-Ebene verfügbar ist. Wenn Sie den Server imAnschlüsseund dann dieBenutzerdefinierte FelderAbschnitt desW3C-ProtokollierungsfelderDer Dialog ist deaktiviert.
ImFormatFeld unterLogdatei, wählenW3Cund dann aufFelder auswählen....
ImW3C-ProtokollierungsfelderKlicken Sie im DialogfeldFeld hinzufügen.... Beachten Sie, dass die erweiterte Protokollierung nur für die Protokollierung auf Site-Ebene verfügbar ist. Wenn Sie den Server in derAnschlüsseund dannFeld hinzufügen...ist behindert.
ImBenutzerdefiniertes Feld hinzufügenGeben Sie im DialogfeldFeldnameum beispielsweise
c-ip-original
das benutzerdefinierte Feld in der Protokolldatei zu identifizieren. Bitte beachten Sie, dass der Feldname keine Leerzeichen enthalten darf.WählenAnforderungsheaderimQuelle TypListe.
Geben Sie
X-FORWARDED-FOR
einQuelle.KlickenOK.
KlickenOK.
KlickenAnwendenimAktionen, um die neue Konfiguration anzuwenden.
Sobald die benutzerdefinierten Felder konfiguriert wurden, erstellt IIS neue Textprotokolldateien mit dem Zusatz „_x“ an den Dateinamen, um anzuzeigen, dass die Datei benutzerdefinierte Felder enthält.
Beachten Sie, dass die Gesamtgröße der aus allen benutzerdefinierten Feldern erfassten Daten 65.536 Byte nicht überschreiten darf. Wenn die Gesamtgröße 65.536 Byte überschreitet, kürzt IIS die Daten.