Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 是否可以使用nginx记录(但允许满足请求)无效的引用者?_Logging_Nginx_Referrer - Fatal编程技术网

Logging 是否可以使用nginx记录(但允许满足请求)无效的引用者?

Logging 是否可以使用nginx记录(但允许满足请求)无效的引用者?,logging,nginx,referrer,Logging,Nginx,Referrer,当使用nginx作为一个简单的web服务器时(没有反向代理魔法,甚至没有cgi等等),是否可以设置一个有效引用者列表并执行以下操作: if ( referrer not in list of VALID referrers ) { log this referrer } 使用标准nginx源代码或任何附加模块/扩展是否可以实现此类功能 据我所知,这可能会稍微涉及,不需要一个完整的conf编写。。。向我指出正确的conf指令就足够了:) 谢谢 http { map $http_ref

当使用nginx作为一个简单的web服务器时(没有反向代理魔法,甚至没有cgi等等),是否可以设置一个有效引用者列表并执行以下操作:

if ( referrer not in list of VALID referrers ) {
    log this referrer
}
使用标准nginx源代码或任何附加模块/扩展是否可以实现此类功能

据我所知,这可能会稍微涉及,不需要一个完整的conf编写。。。向我指出正确的conf指令就足够了:)

谢谢

http {
  map $http_referrer $log_ref {
   default               0;

   http://referrer1/path 1;
   ~^http://referrer2/   1;
  }

  server {

    location / {
      if ($log_ref) {
        access_log ....
      }
    }

  }
}

Nginx版本0.9.6+支持
map
中的正则表达式。标记
~
用于表示它们

这看起来像我正在寻找的,但是关于上面的一个进一步的问题:我认为有效的推荐者列表如下protocol://host/path... 有没有可能把它扩展成一个protocol://host/*样式表?我们想要允许的是一个允许的主机的小列表,而所有其他主机(在我们记录它们之后,看看到底发生了什么,因为我们现在甚至不知道)都被拒绝了。因此,清单、第2页、第3页等并不现实。让我知道你的想法。哇!我一直想这样做大约6个月了。谢谢你,亚历克斯。