El registro de NGINX no funciona cuando se niega todo en el bloque de ubicación

El registro de NGINX no funciona cuando se niega todo en el bloque de ubicación

Pensé que este comportamiento era bastante extraño, por eso voy a preguntar aquí.

Tome este bloque de ubicación;

location ~ /(wp-config.php|readme.html|licence.txt|license.txt|readme.txt) {
    access_log /var/log/nginx/blocked.log blocked;
    deny all;
}

No registra nada en el archivo de registro; sin embargo, si elimino elnegar todo; - lo hace. Lo mismo ocurre convolver 403etc.

Quiero registrar solicitudes bloqueadas.

nginx version: nginx/1.8.0

ACTUALIZAR

La causa de esto parece ser cuando define sus propias páginas de error. Por ejemplo:

http {  ..
    error_page          403          /error/403.html;
    error_page          404          /error/404.html;
.. }

La eliminación de estas líneas permitió el inicio de sesión.

Respuesta1

Cosas para comprobar:

  1. ¿Has definido blocked?
  2. ¿O la ruta al archivo de registro es correcta?
  3. Comprueba locationel pedido porque wp-config.phplo más probable es que coincidan location ~ \.php$o sean similares.

A mí me funciona con nginx: 1.7.11.1Gryphon, aunque es un entorno Windows.

He aquí mi arreglo:

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;
        }
    ...
    }

}

información relacionada