基本上,我正在尝试删除搜索引擎抓取工具,例如Google,Bing,以及我的访问日志中没有的内容.它们确实会随着时间的推移而逐渐增加,最终会在日志中添加数十万个无用的访问日志条目,如果您需要搜索它们,这尤其令人痛苦.我遇到的麻烦是,在我的块中,我正在定义访问日志,因此Nginx正在查看它并忽略我在位置/块中定义的第二个.如果我注释掉我的站点的访问日志(而不是爬虫块),那么它可以正常工作.这是配置:
server {
listen 80;
server_name example.com;
access_log /home/domains/example.com/logs/access;
error_log /home/domains/example.com/logs/error;
root /home/domains/example.com/forums;
location / {
index index.html index.htm;
if ($http_user_agent ~* ("googlebot") ) {
access_log off;
}
}
我已经删除了所有内容,除了发布时(PHP包括,但没有),尽管我已经检查过没有任何东西干扰它通过评论除了上面的所有内容.总而言之,我在我的虚拟块中定义了一个日志来记录所有流量(我为每个块定义了它,使它更整洁,什么不是.我正在尝试禁用某些用户代理的日志记录,除非我禁用该站点的主日志,否则它将继续记录我告诉它的用户代理.
我已经在这几个小时了,任何帮助将不胜感激.
最佳答案
你不应该在Nginx – if is evil中使用if语句
http {
map $http_user_agent $excluded_ua {
~Googlebot 0;
default 1;
}
.......
}
server {
access_log /home/domains/example.com/logs/access combined if=$excluded_ua;
}
但是要小心排除googlebot,因为一些滥用机器人伪装自己.