Achei esse comportamento bem estranho, por isso vou perguntar aqui.
Pegue este bloco de localização;
location ~ /(wp-config.php|readme.html|licence.txt|license.txt|readme.txt) {
access_log /var/log/nginx/blocked.log blocked;
deny all;
}
Ele não registra nada no arquivo de log, no entanto, se eu remover onegar tudo; - é verdade. O mesmo vale pararetornar 403etc.
Quero registrar solicitações bloqueadas.
nginx version: nginx/1.8.0
ATUALIZAR
A causa disso parece ser quando você define suas próprias páginas de erro. Por exemplo:
http { ..
error_page 403 /error/403.html;
error_page 404 /error/404.html;
.. }
A remoção dessas linhas permitiu o registro
Responder1
Coisas para verificar:
- Você definiu
blocked
? - Ou o caminho para o arquivo de log está correto?
- Verifique
location
o pedido porquewp-config.php
provavelmente será iguallocation ~ \.php$
ou semelhante
Funciona para mim com nginx: 1.7.11.1
o Gryphon, embora seja um ambiente Windows.
Aqui está minha configuração:
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;
}
...
}
}