Я хочу запретить поиск ботов следующего типа. Но по умолчанию nginx-botsearch.conf не соответствует этому журналу ошибок.
2019/04/19 12:42:22 [error] 1193#1193: *6 open() "/var/www/domain.com/htdocs/.well-known/dnt-policy.txt" failed (2: No such file or directory), client: 184.0.77.164, server: domain.com, request: "GET /.well-known/dnt-policy.txt HTTP/1.1", host: "domain.com"
Затем я изменил по умолчанию failregex, как показано ниже. Но это не соответствует приведенному выше журналу сбоев.
failregex = ^ \[error\] \d+#\d+: \*\d+ (\S+ )?\"\S+\" (failed|is not found) \(2\: No such file or directory\), client\: <HOST>, server\: \S*\, request: \"(GET|POST|HEAD) \/".*?
Я не могу понять, какая часть вызывает эту ошибку. Любая помощь приветствуется.
Просто опечатка в конце:
request: \"(GET|POST|HEAD) \/".*?
В этом нет никакого смысла. Почему бы тебе сбежать от одного "
но не другой, и два квантора следуют друг за другом? Я считаю, что это то, что вы хотели написать:
request: \"(GET|POST|HEAD) \/.*\"
С этим изменением он действительно соответствует вашей записи журнала из примера. В следующий раз воспользуйтесь визуальным редактором регулярных выражений (есть несколько веб-приложений), это сэкономит вам много времени.