Отдельный лог под сложное условие - Nginx

12
M
На сайте с 17.09.2016
Offline
132
#11

map $status:$http_user_agent $good_useragent {

D
На сайте с 28.06.2008
Offline
1108
#12

сделал так

map $status:$http_user_agent $good_useragent {
default 0;
503:~*YandexAccessibilityBot 1;
503:~*YandexDirect 1;
503:~*YandexImages 1;
503:~*Yahoo 1;
503:~*Mediapartners-Google 1;
503:~*YandexBot 1;
503:~*Googlebot 1;
503:~*msnbot 1;
503:~*bingbot 1;
503:~*Mail 1;
}

+ в хост

access_log /var/log/nginx/access.good_useragent.log combined if=$good_useragent;

лог создался, пока пустой - все правильно?

S
На сайте с 17.08.2008
Offline
114
#13
map $status

В map статус не работает... Вроде бы...

D
На сайте с 28.06.2008
Offline
1108
#14
smbbws:
В map статус не работает... Вроде бы...

Походу Вы правы, добавил в коду юзерагент своего браузера

...

503:~*YaBrowser 1;

...

Зажал F5 получил 503 ошибку, но лог так и остался пустым.

D
На сайте с 28.06.2008
Offline
1108
#15

Да нет, в оф. доках пишут что поддерживается http://nginx.org/ru/docs/http/ngx_http_log_module.html#access_log

Вот пример

map $status $loggable {
~^[23] 0;
default 1;
}

access_log /path/to/access.log combined if=$loggable;

Значит я где-то ошибаюсь, только не пойму где... Почему я тестово сам не вижу влоге ошибки с моего Яндекс браузера?

-
На сайте с 15.12.2010
Offline
133
#16
Dram:

Значит я где-то ошибаюсь, только не пойму где... Почему я тестово сам не вижу влоге ошибки с моего Яндекс браузера?

Посмотрите на пример и на то что у Вас.

Вы попутали 1 и 0. Должно быть наоборот, чтобы их исключить из лога.

Параметр if (1.7.0) включает условную запись в лог. Запрос не будет записываться в лог, если результатом вычисления условия является “0” или пустая строка.
D
На сайте с 28.06.2008
Offline
1108
#17

Мне в лог нужно записать запросы получившие 503 ошибку с определенным рефером.

503:~*YaBrowser 1;

Пробую ее получить сам, у меня Яндекс барузер - в конфиге на это условие = 1

Где ошибка?

-
На сайте с 15.12.2010
Offline
133
#18

А, ясно.

Пробуйте так:

map $status:$http_user_agent $good_useragent {
default 0;
~*503:.*(yandexaccessibilitybot|yandexdirect|yandeximages|yahoo|mediapartners-google|yandexbot|googlebot|msnbot|bingbot|mail).* 1;
}
D
На сайте с 28.06.2008
Offline
1108
#19

-Dima-, спасибо!!! Плюсануть не дает к сожалению, заработало!!!

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий