Nginx карта: регулярное выражение для проверки подстроки - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть Nginx служба, которая обслуживает приложение. Это приложение часто отправляет запросы, из-за этого в моем файле access.log находится много сообщений журнала.

По этой причине я пытаюсь создать Условное ведение журнала для избегайте сохранения этих ненужных сообщений журнала.

На основе документации я попытался создать регулярное выражение, чтобы проверить, содержит ли запрос подстроку, но это не сработало.

Я считаю, что моя переменная $request должна быть такой, как эта:

GET /catalog-dash/_reload-hash HTTP/1.1

Я бы хотела проверить, содержит ли моя переменная $request подстроку _reload-hash.

Я создал приведенный ниже код, но, к сожалению, он не сработал.

map $request $loggable {
    ~/_reload-hash/  0;
    default 1;
}

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

Если бы кто-нибудь мог мне помочь, я был бы признателен.

Заранее спасибо.

1 Ответ

0 голосов
/ 07 апреля 2020

Я полагаю, что прежде чем задавать вопрос, я не использовал правильные ключи для поиска ответа по номеру rnet.

Через несколько минут после того, как задал оригинальный вопрос, я нашел этот ответ, который решил мою проблему.

Я отправляю ниже изменения, которые я сделал, чтобы работать, и я надеюсь, что это может помочь другим в будущем.

map $request_uri $loggable {
    ~^.*_reload-hash.*$  0;
    default 1;
}

Спасибо, Ричард, за ваш совет используя $request_uri вместо $request.

...