在nginx.conf全局配置文件配置:
#根据user-agent的特定信息屏蔽,这里可添加特定的user-agent
map $http_user_agent $bad_bot { default 0; "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36)" 1; "compatible; MSIE 7.0" 1; "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" 1; "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Amazonbot/0.1; +https://developer.amazon.com/support/amazonbot) Chrome/119.0.6045.214 Safari/537.36" 1; }
然后
在站点server块配置:
if ($bad_bot) {
return 444; # 使用444响应码可以让Nginx关闭连接而不发送任何响应
}
并且日志中:
access_log ./wwwlogs/$http_host.access.$logdate.log main if=$combined_log_filter;