nginx 这样设置不记录某种日志,为什么不生效
- 0次
- 2021-05-21 03:19:38
- idczone
if 美国服务器($http_user_agent ~* (abcd|123456789)) {
access_log off; }
这样不行
location / { if ($http_user_agent ~* (abcd|123456789)) {
access_log off; }
}
这样也不行
要怎么写,我想设置不记录 某些 http_user_agent 访问的日志
access_log 的 off 只影响本层。试试用 access_log if=condition 格式
map $status $loggable {
abcd 0;
123456789 0;
default 1;
}
access_log /var/log/nginx/access.log combined if=$loggable;
有个 nginx_log 插件,可以实现
location / {
if ($http_user_agent ~* (Chrome\/50\.0\.2661\.102|MSIE\ 9\.0) ) {
access_log off;
return 403;
}
}
我这样写是好使的,注意转义
放在 location 里是没问题的,可能是正则没写好?