技术解析

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 里是没问题的,可能是正则没写好?

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服