Задать вопрос

Как отключить логирование в nginx, если в url содержится определенная последовательность символов?

Добрый день!

Помогите правильно составить location, чтобы исключить записи из лога ошибок, если url содержит последовательность @5h.

Суть проблемы - периодически запрашивается файл site.com/a/b/*@5h*.png, которого на сервере не существует. При этом в error.log попадает об этом запись. Необходимо правильно составить location, чтобы отключить логирование.

Пробовал:
location ~* \@5h {
    log_not_found off;
}


Также
location ~* @5h {
location ~ @5h {
location ~ @5h* {
location ~* @5h* {


Ни один из вариантов не сработал. При запросе site.com/a/b/test@5h.png запись попадает в лог.

Спасибо.
  • Вопрос задан
  • 3922 просмотра
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
evnuh
@evnuh
Поиск Гугл помог мне, впусти и ты его в свой дом
Порядок проверки локейшнов у nginx точно приходит к нужному локейшну?
To find location matching a given request, nginx first checks locations defined using the prefix strings (prefix locations). Among them, the location with the longest matching prefix is selected and remembered. Then regular expressions are checked, in the order of their appearance in the configuration file. The search of regular expressions terminates on the first match, and the corresponding configuration is used. If no match with a regular expression is found then the configuration of the prefix location remembered earlier is used.


Так же проверьте нет ли префиксных локейшнов такого вида:
If the longest matching prefix location has the “^~” modifier then regular expressions are not checked.
Ответ написан
Комментировать
@Nc_Soft
Поставьте в локейшене deny all чтобы убедится что он туда попадает. Мне кажется что нет.
Возможно, @ надо писать в формате urlencode
Ответ написан
Комментировать
@v2t Автор вопроса
@evnuh, @Nc_Soft, спасибо за помощь в решении проблемы! Действительно перед нужным мне location был такой, который не давал дойти до нужного.
После помещения
location ~* \@5h {
    log_not_found off;
}

в нужное место, записи в лог перестали попадать.
Однако есть сомнения в правильности составления записи самого location.
Подскажите, каким из выражений location лучше всего реализовать такую задачу?
Спасибо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы