Grundsätzlich versuche ich Suchmaschinen-Crawler wie Google, Bing und was nicht aus meinen Zugriffsprotokollen zu entfernen. Sie bauen sich wirklich im Laufe der Zeit auf und fügen den Logs schließlich hunderttausende nutzloser Zugriffsprotokolleinträge hinzu, was besonders mühsam ist, wenn man sie jemals durchsuchen muss. Das Problem, das ich habe, ist, dass ich in meinen Blöcken das Zugriffsprotokoll definiere, daher betrachtet Nginx das und ignoriert meine zweite, die ich im Ort/Block definiere. Wenn ich mein Zugriffsprotokoll für meine Site (nicht den Crawlerblock) auskommentiere, funktioniert es einwandfrei. Hier ist die Konfiguration:Nginx deaktivieren Protokollierung für bestimmte Benutzer-Agenten
server {
listen 80;
server_name example.com;
access_log /home/domains/example.com/logs/access;
error_log /home/domains/example.com/logs/error;
root /home/domains/example.com/forums;
location/{
index index.html index.htm;
if ($http_user_agent ~* ("googlebot")) {
access_log off;
}
}
Ich habe entfernt alles, außer dass bei der Buchung (php include, und was nicht), obwohl ich überprüft haben, dass nichts es stört, indem sie alles kommentieren Sie alles außer dem, was oben ist. Um es zusammenzufassen, ich habe ein Protokoll in meinem virtuellen Block definiert, um den gesamten Datenverkehr zu protokollieren (Ich habe es für jeden Block definiert, um es ordentlicher zu machen und was nicht. Ich versuche die Protokollierung für bestimmte Benutzeragenten zu deaktivieren, Wenn ich das Hauptprotokoll für die Site nicht deaktiviere, wird es fortfahren zu protokollieren, was ich für die Benutzeragenten nicht sage. "
Ich bin seit ein paar Stunden dabei, jede Hilfe wird sehr geschätzt werden.
Danke, aber das Problem, das ich habe, ist nicht die Übereinstimmung des Benutzeragenten. Aus irgendeinem Grund kann ich die Protokollierung für diesen Benutzeragenten nicht deaktivieren, es sei denn, ich entferne den definierten Protokollspeicherort für meinen Block. – Ryan
Es sieht so aus, als wäre es passend, den User Agent zu finden, weil 'access_log' nicht ausgeführt wird, wenn die Regex nicht übereinstimmt. Ich habe es auch getestet mit Conf ähnlich wie bei Ihnen und es hat gut funktioniert. –
Mir ist klar, dass ich die Syntax noch nicht völlig korrekt habe, aber es genügt, Google auszuwählen. Wenn ich zum Beispiel eine "403-Rückkehr" nach dem Zugriffsprotokoll einreiche, wird 403 zurückgegeben, aber die Protokollierung bleibt erhalten, wenn ich nicht das Protokoll lösche, das ich für alle Anforderungen auf diesem Serverblock definiert habe. – Ryan