Nachdem ich zu dem Thema schon einen Beitrag für den Apache Webserver veröffentlicht und meinen Server heute Nacht auf Nginx umgestellt habe, darf natürlich auch die Umstellung für Nginx nicht fehlen ;)
Wie ich im Beitrag zum Apache Webserver schon erwähnt habe, ist laut TMG (=> TMG §15) das Speichern von IP-Adressen über den Webserver nicht zulässig, außer es ist zwingend Notwendig, um dem Benutzer einen Dienst anbieten zu können. Die Ausnahme trifft bei meinem Blog (und den meisten anderen) aber nicht zu, sodass ich gesetzlich verpflichtet bin, die IP-Adressen meiner Besucher aus den Logfiles zu entfernen.
Unter Ubuntu Server 14.04 findet man im Nginx Konfigurationsverzeichnis eine Datei nginx.conf. Dort wird in den http-Bereich folgendes eingetragen:
log_format ipkiller '[ip-addr] - $remote_user [$time_local] ' '"$request" $status $bytes_sent ' '"$http_referer" "$http_user_agent" "$gzip_ratio"'; access_log /var/log/nginx/access.log ipkiller; # access_log off;
Ein neues Logformat „ipkiller“ wird eingerichtet und vom accesslog genutzt. Bei diesem neuen Profil werden die IP-Adressen nicht erfasst und der Platzhalter [ip-addr] eingefügt. Wer will, kann den Accesslog auch ganz abschalten – im normalen Betrieb hat man davon sowieso keinen Nutzen. Es sei denn, man analysiert den Accesslog mit speziellen Tools, um Zugriffsstatistiken aufzustellen.
Anders als bei Apache kann für die Errorlogs leider kein Format festgelegt werden. Der Errorlog kann aber abgeschaltet werden (nicht zu empfehlen!):
error_log off;
Gibt es auch eine Möglichkeit die IP zu hashen? Dann könnte man eher sehen ob jemand nur eine seite oder mehrere besucht hat und in welcher Reihenfolge und was die letzte war…
@Freiheit: Da es nur 2^32 (IPv4) IPs gibt, ist Hashen nicht effektiv. Man kann die ursprüngliche IP in wenigen Sekunden Rechenzeit mit brute force herausfinden.