Ich fand dieses Verhalten ziemlich merkwürdig und werde deshalb hier nachfragen.
Nehmen Sie diesen Standortblock;
location ~ /(wp-config.php|readme.html|licence.txt|license.txt|readme.txt) {
access_log /var/log/nginx/blocked.log blocked;
deny all;
}
Es wird nichts in die Protokolldatei geschrieben, aber wenn ich diealles leugnen; - das tut es. Dasselbe gilt fürRückgabe 403usw
Ich möchte blockierte Anfragen protokollieren.
nginx version: nginx/1.8.0
AKTUALISIEREN
Die Ursache hierfür scheint darin zu liegen, dass Sie Ihre eigenen Fehlerseiten definieren. Zum Beispiel:
http { ..
error_page 403 /error/403.html;
error_page 404 /error/404.html;
.. }
Das Entfernen dieser Zeilen ermöglichte die Protokollierung
Antwort1
Zu überprüfende Punkte:
- Haben Sie definiert
blocked
? - Oder ist der Pfad zur Protokolldatei korrekt?
- Überprüfen Sie
location
die Reihenfolge, dawp-config.php
sie höchstwahrscheinlich übereinstimmtlocation ~ \.php$
oder ähnlich ist.
Bei mir funktioniert es mit nginx: 1.7.11.1
Gryphon, obwohl es eine Windows-Umgebung ist.
Hier ist mein Setup:
http {
...
log_format robots '$remote_addr - $remote_user [$time_local] '
'$host "$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
...
server {
...
location ~/(robots.txt|readme.html) {
access_log logs/nginx-access-robots.log robots;
deny all;
}
...
}
}