Welcome! Log In Create A New Profile

Advanced

Вопрос по access_log

February 09, 2018 04:40AM
Доброе время суток!
nginx/1.13.8

Случайно обнаружилась непонятка.

Конфиг 1:
http {
        ....
        log_format f1 '[$time_local - 1]';
        log_format f2 '[$time_local - 2]';

        access_log /var/log/nginx/1.log f1;
        access_log /var/log/nginx/2.log f2;

        server {
            listen ...
            root ....
            index .....
#            access_log /var/log/nginx/1.log f1;
#            access_log /var/log/nginx/2.log f2;
        }
}

Делаем запрос и получаем ожидаемое: запись в ОБА файла.
-------------------------------------------------------------------------------------------
Теперь так.
Конфиг 2:
http {
        ....
        log_format f1 '[$time_local - 1]';
        log_format f2 '[$time_local - 2]';

        access_log /var/log/nginx/1.log f1;
#        access_log /var/log/nginx/2.log f2;

        server {
            listen ...
            root ....
            index .....
#            access_log /var/log/nginx/1.log f1;
            access_log /var/log/nginx/2.log f2;
        }
}

И запись ТОЛЬКО во второй файл.
-------------------------------------------------------------------------------------------
Конфиг 3:
http {
        ....
        log_format f1 '[$time_local - 1]';
        log_format f2 '[$time_local - 2]';

#        access_log /var/log/nginx/1.log f1;
#        access_log /var/log/nginx/2.log f2;

        server {
            listen ...
            root ....
            index .....
            access_log /var/log/nginx/1.log f1;
            access_log /var/log/nginx/2.log f2;
        }
}

Опять все ожидаемо, запись в оба файла.
-------------------------------------------------------------------------------------------
В server / location похожая ситуация:
server {
    listen ...
    root ...
    index ...
    ....
    access_log /var/log/nginx/1.log f1;
    ........

    # Все, что не совпало с разрешенными
    location "" {
        return 404;
    }

    error_page 404 = @err404;

    location @err404 {
        keepalive_timeout 0;
        rewrite ^ /err/404.html break;
        access_log /var/log/nginx/2.log f2;
    }
}

Ожидаемо: бредовый запрос должен отметиться и в 1.log, и в 2.log
По факту: если работает "access_log /var/log/nginx/2.log f2;", соответственно, не работает "access_log /var/log/nginx/1.log f1;"
Правильный запрос приходит в 1.log, бредовый - в 2.log

Если "access_log /var/log/nginx/2.log f2;" отключить, тогда в 1.log приходят все запросы, и правильные, и бредовые.

access_log в нижестоящем контексте отменяет все вышестоящие?
--_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Вопрос по access_log

CoDDoC February 09, 2018 04:40AM

Re: Вопрос по access_log

Maxim Dounin February 09, 2018 08:02AM

Re: Вопрос по access_log

Slawa Olhovchenkov February 09, 2018 08:12AM

Re: Вопрос по access_log

ru@nginx.com February 09, 2018 08:28AM

Re: Вопрос по access_log

Slawa Olhovchenkov February 09, 2018 08:36AM

Re: Вопрос по access_log

Alex Vorona February 09, 2018 09:34AM

Re: Вопрос по access_log

Slawa Olhovchenkov February 09, 2018 09:40AM

Re: Вопрос по access_log

ru@nginx.com February 09, 2018 02:32PM

Re: Вопрос по access_log

Konstantin Tokarev February 09, 2018 09:46AM

Re: Вопрос по access_log

ru@nginx.com February 09, 2018 02:28PM

Re: Вопрос по access_log

Slawa Olhovchenkov February 09, 2018 03:40PM

Re: Вопрос по access_log

ru@nginx.com February 09, 2018 03:56PM

Re[2]: Вопрос по access_log

CoDDoC February 09, 2018 09:18AM

Re[2]: Вопрос по access_log

CoDDoC February 09, 2018 09:16AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 170
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready