2009-06-05 15 views
4

% a ist "Remote-IP-Adresse" und% h ist "Remote-Host", aber wenn ich es teste, drucken beide die gleichen IP-Adressen aus. Was ist der Unterschied?Apache logs - was ist der Unterschied zwischen% a und% h?

Beispielprotokollausgabe für Log-Format „% a% h:

192.168.1.2 192.168.1.2 
192.168.1.2 192.168.1.2 
192.168.1.2 192.168.1.2 

Antwort

4

Der Remote-Host-Wert versucht, einen DNS-Lookup auf die IP-Adresse führen Sie einen Hostnamen zu geben, wenn die resolveHosts eingestellt ist Attribut Wenn nicht, gibt der Remote-Host nur die Remote-IP-Adresse zurück

+2

Beachten Sie, dass diese Option Ihren Server verlangsamen kann. –

+1

Gerade entdeckt, dass - zumindest unter Apache 2.4 - '% a' erforderlich ist, wenn Sie versuchen, die X-Real-IP-dekodiert durch das Remoteip-Modul zu protokollieren. Die Verwendung von '% h' protokolliert nur den Proxy. Habe eine gute halbe Stunde damit verbracht, das herauszufinden. – smitelli

1

% h ist der Hostname und% a ist die IP-Adresse.% H zeigt nur den Hostnamen an, wenn Apache gerade die Namensauflösung durchführt verlangsamen Sie Ihren Server und wird im Allgemeinen nicht empfohlen

Die folgende Beschreibung der% h wird direkt aus dem aufgenommenen Apache documentation: -

ist dies die IP-Adresse des Clients (entfernten Host), die die Anfrage an den Server gestellt. Wenn HostnameLookups auf Ein gesetzt ist, versucht der Server, den Hostnamen zu ermitteln und ihn anstelle der IP-Adresse zu protokollieren. Diese Konfiguration wird jedoch nicht empfohlen, da sie den Server erheblich verlangsamen kann. Verwenden Sie stattdessen einen Protokoll-Postprozessor wie z. B. logresolve, um die Hostnamen zu ermitteln. Die hier angegebene IP-Adresse ist nicht unbedingt die Adresse der Maschine, auf der der Benutzer sitzt. Wenn zwischen dem Benutzer und dem Server ein Proxyserver vorhanden ist, ist diese Adresse die Adresse des Proxy und nicht die ursprüngliche Maschine.

Verwandte Themen