Nginx禁用某些用户代理的日志记录

发布时间:2020-04-14 发布网站:大佬教程
大佬教程收集整理的这篇文章主要介绍了Nginx禁用某些用户代理的日志记录大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

基本上,我正在尝试删除搜索引擎抓取工具,例如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语句

使用conditional logging

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,因为一些滥用机器人伪装自己.

大佬总结

以上是大佬教程为你收集整理的Nginx禁用某些用户代理的日志记录全部内容,希望文章能够帮你解决Nginx禁用某些用户代理的日志记录所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ群:277859234,请注明来意。